import pandas as pd
inp = [{'c1':10,'cols':{'c2':20,'c3':'str1'}, 'c4':'41'}, {'c1':11,'cols':{'c2':20,'c3':'str2'},'c4':'42'}, {'c1':12,'cols':{'c2':20,'c3':'str3'},'c4':'43'}]
df = pd.DataFrame(inp)
print (df)
df
是:
c1 c4 cols
0 10 41 {'c2': 20, 'c3': 'str1'}
1 11 42 {'c2': 20, 'c3': 'str2'}
2 12 43 {'c2': 20, 'c3': 'str3'}
cols
列是 JSON 类型。
我需要将 cols
列设置为 json_decode
,这意味着将 df
更改为:
c1 c4 c2 c3
0 10 41 20 str1
1 11 42 20 str2
2 12 43 20 str3
怎么做?
提前致谢!
最佳答案
pd.io.json.json_normalize(inp)
输出
c1 c4 cols.c2 cols.c3
0 10 41 20 str1
1 11 42 20 str2
2 12 43 20 str3
如果您有 pd.DataFrame
,请使用 to_dict
转换回来
pd.io.json.json_normalize(df.to_dict('records'))
关于python - 如何将 json 列迭代到列,然后附加原始数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55281085/