将带有列表的字典转换为熊猫数据框

Posted

技术标签:

【中文标题】将带有列表的字典转换为熊猫数据框【英文标题】:Convert dictionary with list into pandas dataframe 【发布时间】:2021-09-07 17:09:53 【问题描述】:

我有一本 Python 字典

result_dict =  'kontonummer': None,
                'industryPredictions': 'Supermarket': 0.006795256825841207,
                                        'Cars': 0.01113155396585519,
                'paymentmethods': ['Klarna SofortUeberweisung',
                                   'Klarna Ratenkauf.',
                                   'Ueberweisung'],
                'pricesAmount': 2721,
                'pricesMean': 30.796045571481077,
                'pricesQ25': 12.99

我想将字典展平,以便将其转换为 pandas dataframe,类似于:

  kontonummer   industryPredictions.Supermarket industryPredictions.Cars    paymentmethods  pricesAmount    pricesMean  pricesQ25
0    None                 0.006795                        0.011132      ['Klarna Sofort...]    2721               30.79    12.99

我知道如何将 dict 转换为 dataframe。我的问题是将字典转换成所需的结构。

如您所见,有两个挑战:

    industryPredictions paymentmethods 中给出的列表

【问题讨论】:

pd.json_normalize(result_dict) ?? 我的问题是将字典转换成所需的结构。你想要数据框还是想要字典? 嗯,我很惊讶从@Nk03 截取的简单代码解决了我的问题。我不知道这个。非常感谢!!! 【参考方案1】:

只需使用pd.json_normalize,然后传递您拥有的字典

>>> pd.json_normalize(result_dict)

  kontonummer                                                paymentmethods  pricesAmount  pricesMean  pricesQ25  industryPredictions.Supermarket  industryPredictions.Cars
0        None  [Klarna SofortUeberweisung, Klarna Ratenkauf., Ueberweisung]          2721   30.796046      12.99                         0.006795                  0.011132

即使您的列表中有多个这样的字典,它也可以工作,例如:pd.json_normalize([result_dict, result_dict])

【讨论】:

以上是关于将带有列表的字典转换为熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

将带有值列表的字典转换为数据框

将字典的特定字典转换为熊猫数据框 - 熊猫 [重复]

将熊猫数据框转换为字典

如何将嵌套字典转换为熊猫数据框?

将熊猫数据框转换为具有多个键的字典

在不使用熊猫的情况下将数据框转换为pyspark中的字典