将python字典列表转换为pandas中的dataframe

将python字典列表转换为pandas中的dataframe,python,pandas,Python,Pandas,我有一份字典清单: fruit_list = [ { "id": 1, "fruit": { "parent_id": 1, "name": "Banana", "origin": "Brazil" } },

我有一份字典清单:

     fruit_list = [
            {
                "id": 1,
                "fruit": {
                    "parent_id": 1,
                    "name": "Banana",
                    "origin": "Brazil"
                }
            },
            {
                "id": 2,
                "fruit": {
                    "parent_id": 1,
                    "name": "Banana",
                    "plural_name": "Bananas",
                    "origin": "Africa"
                }
            },
            {
                "id": 3,
                "fruit": {
                    "parent_id": 2,
                    "name": "Orange",
                    "origin": "Africa"
                }
            },
            {
                "id": 4,
                "fruit": {
                    "parent_id": 2,
                    "name": "Orange",
                    "origin": "Africa"
                }
            },
            {
                "id": 5,
                "fruit": {
                    "parent_id": 3,
                    "name": "Apple",
                    "plural_name": "Apples",
                    "origin": "Africa"
                }
            },
            {
                "id": 6,
                "fruit": {
                    "parent_id": 3,
                    "name": "Apple",
                    "plural_name": "Apples",
                    "origin": "Brazil"
                }
            }
        ]

我想用它创建一个熊猫数据框,如下所示:

parent_id    Brazil    Africa
---------------------------------
1            Banana    Banana
1                      Bananas
2            Orange    Orange
3            Apple     Apple
3            Apples    Apples
它应该能够输出复数名称并添加该水果的父id。我遇到的问题是,我只能说出“正常”的名字。 有没有人能提供一些关于如何以一种动态和优雅的方式完成这项工作的建议? 可能是根据它们的父ID获取水果?

将熊猫作为pd导入
数据={}
水果中的水果清单:
父项id=str(水果['fruit']['parent\u id'])
如果父项id不在data.keys()中:
数据[parent_id]=dict()
如果水果['fruit'].keys()中的“复数名称”:
如果data.keys()中不存在父级\u id+“\u p”:
数据[parent_id+'_p']=dict()
数据[parent_id+''u p']['parent_id']=parent_id
数据[父项id+''''''''.'水果'.['原产地]]=水果['水果'.['复数名']
数据[parent\u id]['parent\u id']=parent\u id
数据[亲本id][水果['fruit']['origin']]=水果['fruit']['name']
其他:
数据[parent\u id]['parent\u id']=parent\u id
数据[亲本id][水果['fruit']['origin']]=水果['fruit']['name']
_数据的列表=[]
对于键,data.items()中的值:
列出\u数据的\u。追加(值)
df=pd.DataFrame(数据列表)
使用提供的数据,输出为

>>> df
  parent_id  Brazil   Africa
0         1  Banana   Banana
1         1     NaN  Bananas
2         2     NaN   Orange
3         3   Apple    Apple
4         3  Apples   Apples
NaN稍后可以替换为空字符串

df.fillna(“”)

我不认为你有巴西橘子哈哈,那没关系。。。这只是一个示例我正在尝试测试您的解决方案,但我不断得到:TypeError:“list”对象不能在数据[parent_id]=dict()的前5行上调用。我认为如果您正试图这样做的话,您不能将这样的父id分配给列表?似乎您命名了一个变量
dict
,它覆盖了字典构造函数的默认名称。将变量的dict名称更改为其他名称。代码本身运行良好,只添加了
水果列表
。哦,天哪。那太尴尬了。谢谢现在可以了。谢谢:)!