Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字典中的字典转换为数据帧_Python_Pandas - Fatal编程技术网

Python 将字典中的字典转换为数据帧

Python 将字典中的字典转换为数据帧,python,pandas,Python,Pandas,我有以下嵌套字典: 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

我有以下嵌套字典:

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...

正确的方法是什么?

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

使用正确的列名,而不是
'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

您是否收到错误或意外输出?在这两种情况下,也请打印出来。
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