将包含 JSON 对象的数据框展开为更大的数据框

Posted

技术标签:

【中文标题】将包含 JSON 对象的数据框展开为更大的数据框【英文标题】:Expand Dataframe containing JSON object into larger dataframe 【发布时间】:2017-11-15 16:22:56 【问题描述】:

我在 pandas 中有一个包含两列的数据框。一个是 ID,另一个是长 JSON 对象,对于数据帧中的每个对象都是同一个对象。我的目标是为 JSON 对象中的每个键创建列。

这里是输入示例

ID  request_json
175431467   "Rate":"50","Groups":"7 months - 3 years"

我想将此扩展为包含三列的数据框:ID、Rate 和 Groups。

最好的方法是什么?

【问题讨论】:

【参考方案1】:

您可以将DataFrame 构造函数与joinconcat 一起使用:

import json

df = df[['ID']].join(pd.DataFrame(df['request_json'].apply(json.loads).values.tolist()))
print (df)
          ID              Groups Rate
0  175431467  7 months - 3 years   50

或者:

df = pd.concat([df['ID'],
                pd.DataFrame(df['request_json'].apply(json.loads).values.tolist())], axis=1)
print (df)
          ID              Groups Rate
0  175431467  7 months - 3 years   50

【讨论】:

这些都不起作用。对于两者,它只是将 request_json 列重命名为 0。【参考方案2】:
In [38]: pd.io.json.json_normalize(df.to_dict('r'))
Out[38]:
          ID request_json.Groups request_json.Rate
0  175431467  7 months - 3 years                50

【讨论】:

这不会改变我的数据框 @mangodreamz,您需要将其分配回或分配给另一个变量

以上是关于将包含 JSON 对象的数据框展开为更大的数据框的主要内容,如果未能解决你的问题,请参考以下文章

在 Delphi 中是不是可以将枚举合并为更大的枚举?

对RDD进行Spark重复数据删除以获得更大的RDD

如何将小 ORC 文件合并或合并为更大的 ORC 文件?

将 Mat 图像转置为更大的 Mat 图像,Opencv

如何将 RGB 或 HEX 颜色代码分组为更大的颜色组?

如何将由小正方形组成的区域划分为更大的矩形?