将Arrays的Python dict转换为数据帧

Convert Python dict of Arrays into a dataframe

我有一个数组字典,如下所示:

1
d = {'a': [1,2], 'b': [3,4], 'c': [5,6]}

我想创建这样的熊猫数据框:

1
2
3
4
   0      1      2
0  a      1      2
1  b      3      4
2  c      5      6

我写了以下代码:

1
pd.DataFrame(list(d.items()))

返回:

1
2
3
4
   0    1      
0  a  [1,2]      
1  b  [3,4]      
2  c  [5,6]

你知道我怎样才能达到我的目标吗?!

提前谢谢。


熊猫可以让你以一种简单的方式做到这一点:

1
2
3
4
5
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()给了你想要的。


在理解中使用splat运算符生成数据帧:

1
2
3
4
5
6
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即可:

1
2
3
4
5
6
pd.DataFrame(d).T.reset_index()

  index  0  1
0     a  1  2
1     b  3  4
2     c  5  6

最后,虽然它相当难看,但在非常大的词典上,我能找到的最有效的选择是:

1
pd.DataFrame(list(d.values()), index=list(d.keys())).reset_index()