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