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

时间:2017-06-13 18:39:01

标签: python json python-2.7 pandas

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

以下是输入

的示例
ID  request_json
175431467   {"Rate":"50","Groups":"7 months - 3 years"

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

最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

您可以将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

答案 1 :(得分: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