我有一本字典,正在尝试将其转换为数据框。字典本质上是嵌套的,其中键必须是列。例如:
{
"apple":[
{
"price":19,
"store":"xyz"},
{"price":13,
"store":"abc"
}
}],
"pear":[{
"price":25,
"store":"xyz"
}]
}
我希望最终数据帧的格式为
FRUIT PRICE STORE
apple 19 xyz
apple 13 abc
pear 25 xyz
我试图通过像这样的“fruit”键进行某种类型的迭代来对列表进行排序
for fruit in fruit_dict.keys():
df['FRUIT']=fruit
然后使用 pd.normalize 获取价格/商店,但这对我来说非常复杂。有没有更简单或更好的方法来让这本字典“扁平化”?
最佳答案
通过外部输入字典的键对 FRUIT
列使用 concat helper dict 的字典列表进行列表理解:
fruit_dict = {
"apple": [{
"price": 19,
"store": "xyz"
},
{
"price": 13,
"store": "abc"
}
],
"pear": [{
"price": 25,
"store": "xyz"
}]}
df = pd.DataFrame([{**{'FRUIT':k}, **x} for k, v in fruit_dict.items() for x in v])
print (df)
FRUIT price store
0 apple 19 xyz
1 apple 13 abc
2 pear 25 xyz
关于python - 使用键作为新列从字典创建数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72715669/