我需要从包含列表的字典中使用 MultiIndex 在 Pandas 中创建一个 DataFrame
Posted
技术标签:
【中文标题】我需要从包含列表的字典中使用 MultiIndex 在 Pandas 中创建一个 DataFrame【英文标题】:I need to create a DataFrame in Pandas with MultiIndex from a dictionary that contains a list 【发布时间】:2018-08-23 13:12:19 【问题描述】:好的,我有这本词典:
'a': ['foo': '1', 'bar': '30'],
'b': ['foo': '3'],
'c': ['foo': '184', 'bar': '25'],
'd': ['foo': '6'],
'e': ['bar': '4'],
'f': ['foo': '12','bar': '1'],
'name': 'brian'
我想将其转换为具有多索引的数据框,如下所示:
a b c d e f
foo bar foo bar foo bar foo bar foo bar foo bar
brian 1 30 3 0 184 25 6 0 0 4 12 1
有什么帮助吗?
【问题讨论】:
【参考方案1】:我猜你会有一堆这样的字典,每个名字都应该作为 DataFrame 的索引。在这种情况下,您可以执行以下操作:
1.检索名称并将其从dict原始dict中删除:
name = my_dict['name']
del my_dict['name']
2.将您的 dict 转换为适当的形状:
my_dict_exploded = (k,innerk):innerv for k,v in my_dict.items() for element in v for innerk,innerv in element.items()
df1 = pandas.DataFrame(my_dict_exploded,index=[name])
您的 DataFrame 将如下所示:
a b c d e f
bar foo foo bar foo foo bar bar foo
brian 30 1 3 25 184 6 4 1 12
这与其他帖子类似:Nested dictionary to multiindex dataframe where dictionary keys are column labels @BrenBarn 的回答非常有用。
【讨论】:
以上是关于我需要从包含列表的字典中使用 MultiIndex 在 Pandas 中创建一个 DataFrame的主要内容,如果未能解决你的问题,请参考以下文章
如何从带有列表的嵌套字典构建 MultiIndex Pandas DataFrame
从具有包含 NaN 的 MultiIndex 索引的数据帧中获取值
使用元组键从字典创建 MultiIndex pandas DataFrame
构建 MultiIndex pandas DataFrame 嵌套 Python 字典