将数组的 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 字典转换为数据框的主要内容,如果未能解决你的问题,请参考以下文章

将 pyspark 数据框转换为 python 字典列表

将多维json数组转换成python字典成dataframe

Python Pandas:将嵌套字典转换为数据框

将字典转换为 Python 数据框 [重复]

将字典转换为数据框作为python中的预期输出

将标准 python 键值字典列表转换为 pyspark 数据框