将字典中的字典转换成Pandas数据框架

2024-04-29 11:36:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下嵌套词典:

In [3]: nested_dict
Out[3]:
{'2': {'lagtime': {'darkgreen': 210,
   'darkorange': 141,
   'pink': 142,
   'red': 141}}}

我想做的是创建一个数据帧

0  2   darkgreen  lagtime    210
1  2  darkorange  lagtime    141
2  2        pink  lagtime    142
3  2         red  lagtime    141

我试过了,但失败了:

import pandas as pd
pd.DataFrame.from_dict(nested_dict)

我得到了一个意想不到的结果:

Out[4]:
                                                         2
lagtime  {u'pink': 142, u'darkorange': 141, u'darkgreen...

正确的方法是什么?你知道吗


Tags: 数据inimportpandasasredoutdict
1条回答
网友
1楼 · 发布于 2024-04-29 11:36:18

首先需要将嵌套字典转换为字典列表或列表字典,然后只有您才能将其转换为数据帧。示例(转换为词典列表)-

list_of_dict = []
for key, value in nested_dict.items():
    for key1, value1 in value.items():
        for key2,value2 in value1.items():
            list_of_dict.append({'A':key,'B':key1,'C':key2,'D':value2})

df = pd.DataFrame(list_of_dict)

使用正确的列名,而不是'A''B'


示例/演示-

In [2]: nested_dict = {'2': {'lagtime': {'darkgreen': 210,
   ...:    'darkorange': 141,
   ...:    'pink': 142,
   ...:    'red': 141}}}

In [4]: list_of_dict = []

In [7]: for key, value in nested_dict.items():
   ...:     for key1, value1 in value.items():
   ...:         for key2,value2 in value1.items():
   ...:             list_of_dict.append({'A':key,'B':key1,'C':key2,'D':value2})
   ...:

In [8]: df = pd.DataFrame(list_of_dict)

In [9]: df
Out[9]:
   A        B           C    D
0  2  lagtime   darkgreen  210
1  2  lagtime        pink  142
2  2  lagtime  darkorange  141
3  2  lagtime         red  141

相关问题 更多 >