从几个嵌套字典制作熊猫数据框
Posted
技术标签:
【中文标题】从几个嵌套字典制作熊猫数据框【英文标题】:make a panda dataframe from several nested dictionaries 【发布时间】:2018-08-01 02:35:14 【问题描述】:我有一个字典,里面有两个嵌套字典。这是一个最小的例子:
df = 'line1': 'a': 'a': 1, 'b': 2, 'b': 'a': 3, 'b': 4,
'line2': 'a': 'a': 5, 'b': 6, 'b': 'a': 7, 'b': 8,
'line3': 'a': 'a': 9, 'b': 10, 'b': 'a': 11, 'b': 12,
'line4': 'a': 'a': 13, 'b': 14, 'b': 'a': 15, 'b': 16
我的程序中有数百行代码,这种结构似乎最容易存储我需要的所有数据。我想像这样创建一个熊猫数据框:
aa ab ba bb
line1 1 2 3 4
line2 5 6 7 8
line3 9 10 11 12
line4 13 14 15 16
但是 pd.DataFrame(dict) 命令似乎不能正确处理超过 2 个嵌套字典,我得到了这个:
pd.DataFrame(df).T
a b
line1 u'a': 1, u'b': 2 u'a': 3, u'b': 4
line2 u'a': 5, u'b': 6 u'a': 7, u'b': 8
line3 u'a': 9, u'b': 10 u'a': 11, u'b': 12
line4 u'a': 13, u'b': 14 u'a': 15, u'b': 16
有没有简单的方法来解决这个问题?还是我必须编写额外的代码来转换我的字典,或者更糟的是,设计另一种存储数据的方式(这会让我重新编写程序的几个部分)?
提前致谢。
【问题讨论】:
见***.com/questions/24988131/… 我在已经存在的问题中进行了快速搜索,但没有找到,抱歉。它现在可以工作了:) 【参考方案1】:将concat
与dict comprehension
一起使用,然后通过unstack
重塑数据并通过map
转换MultiIndex
:
df = pd.concat(k: pd.DataFrame(v) for k, v in df.items()).unstack()
df.columns = df.columns.map(''.join)
print (df)
aa ab ba bb
line1 1 2 3 4
line2 5 6 7 8
line3 9 10 11 12
line4 13 14 15 16
【讨论】:
完美!谢谢 !我在已经存在的问题中进行了快速搜索,但没有找到,抱歉。以上是关于从几个嵌套字典制作熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章