我在pandas中有一个包含两列的数据框。一个是ID,另一个是长JSON对象,它与数据框中每个对象的对象相同。我的目标是为JSON对象中的每个键创建列。
以下是输入
的示例ID request_json
175431467 {"Rate":"50","Groups":"7 months - 3 years"
我想将其扩展为包含三列的数据框:ID,Rate和Groups。
最好的方法是什么?
答案 0 :(得分:3)
您可以将DataFrame
构造函数与join
或concat
一起使用:
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