我有以下字典玩具示例:
d = {"id":666,"dp":[{"Value":"11","Key":"abc"},
{"Value":"88","Key":"kuku"},
{"Value":"99","Key":"lulu"},
{"Value":"John","Key":"name"}]}
我想将其转换为以下数据框:
id key value
666 abc 11
666 kuku 88
666 lulu 99
666 name John
import pandas as pd
我试过使用pd.DataFrame.from_dict(d)
,但我得到了id --> dp
dicts。
请告知,是否有任何快速方法/最佳实践来攻击这种格式?我知道我可以通过几个步骤来完成(创建 id 列并将其添加到键值对中。
您可以使用json_normalize
,但重复值在最后一列:
df = pd.json_normalize(d, 'dp', 'id')
print(df)
Value Key id
0 11 abc 666
1 88 kuku 666
2 99 lulu 666
3 John name 666
为了正确订购使用:
#create list of columns dynamic - all columns names without dp
cols = [c for c in d.keys() if c != 'dp']
print(cols)
['id']
df = pd.json_normalize(d, 'dp', 'id')
#change ordering by joined lists
df = df[cols + df.columns.difference(cols, sort=False).tolist()]
print(df)
id Value Key
0 666 11 abc
1 666 88 kuku
2 666 99 lulu
3 666 John name
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句