将数组的 Python 字典转换为数据框
Posted
技术标签:
【中文标题】将数组的 Python 字典转换为数据框【英文标题】:Convert Python dict of Arrays into a dataframe 【发布时间】:2018-12-21 05:48:51 【问题描述】:我有一个数组字典,如下所示:
d = 'a': [1,2], 'b': [3,4], 'c': [5,6]
我想创建一个这样的熊猫数据框:
0 1 2
0 a 1 2
1 b 3 4
2 c 5 6
我写了以下代码:
pd.DataFrame(list(d.items()))
返回:
0 1
0 a [1,2]
1 b [3,4]
2 c [5,6]
你知道我怎样才能实现我的目标吗?!
提前谢谢你。
【问题讨论】:
Convert Python dict into a dataframe的可能重复 【参考方案1】:Pandas 允许您以简单的方式做到这一点:
pd.DataFrame.from_dict(d,orient = 'index')
>> 0 1
a 1 2
b 3 4
c 5 6
pd.DataFrame.from_dict(d,orient = 'index').reset_index()
为您提供所需的内容。
【讨论】:
【参考方案2】:在理解中使用 splat
运算符来生成数据框:
pd.DataFrame([k, *v] for k, v in d.items())
0 1 2
0 a 1 2
1 b 3 4
2 c 5 6
如果您不介意将 index
作为列名之一,只需转置和 reset_index
:
pd.DataFrame(d).T.reset_index()
index 0 1
0 a 1 2
1 b 3 4
2 c 5 6
最后,虽然它相当难看,但我能在非常大的词典中找到的性能最高的选项如下:
pd.DataFrame(list(d.values()), index=list(d.keys())).reset_index()
【讨论】:
以上是关于将数组的 Python 字典转换为数据框的主要内容,如果未能解决你的问题,请参考以下文章