我有以下字典玩具示例:
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 --> dpdicts。
請告知,是否有任何快速方法/最佳實踐來攻擊這種格式?我知道我可以通過幾個步驟來完成(創建 id 列并將其添加到鍵值對中。
uj5u.com熱心網友回復:
您可以使用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
uj5u.com熱心網友回復:
你也可以試試:
df = pd.DataFrame(d)
df[['Value','Key']]=df.dp.apply(pd.Series)
df = df.drop('dp', axis=1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/463802.html
標籤:python-3.x 熊猫 数据框 字典
上一篇:熊貓查詢僅在分組時顯示真實值
