【问题标题】:Convert Python dict of Arrays into a dataframe将数组的 Python 字典转换为数据框
【发布时间】: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]    

你知道我怎样才能实现我的目标吗?!

提前谢谢你。

【问题讨论】:

标签: python python-3.x pandas dictionary 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2017-07-21
      • 2022-07-05
      • 2021-06-19
      • 2019-10-19
      相关资源
      最近更新 更多