【问题标题】:create a dataframe from a dictionary using the keys as a new column?使用键作为新列从字典创建数据框?
【发布时间】:2022-06-22 20:59:50
【问题描述】:

我有一本字典,我正试图将其转换为数据框。字典本质上是嵌套的,其中的键需要是列。例如:

{
"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  

我正在尝试通过像这样的“水果”键进行某种类型的迭代来对列表进行排序

for fruit in fruit_dict.keys():
    df['FRUIT']=fruit

然后使用 pd.normalize 来获取价格/商店,但这对我来说感觉非常复杂。有没有更简单或更好的方法可以让这本字典“变平”?

【问题讨论】:

  • 提供的字典不是有效的python

标签: python json pandas dictionary


【解决方案1】:

用途:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多