字典到数据帧Pandas:错误:传递了6列,传递的数据有2列。python中的While循环

2024-10-02 18:23:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将python字典转换为pandas数据帧,但是由于字典值的长度不一样,所以当我这样做时:

recomm = pd.DataFrame(recommendation.items(),columns=['id','recId1','recId2','recId3','recId4','recId5'])

我得到:

6 columns passed, passed data had 2 columns

这意味着所提供的值之一的长度为2。在

为了纠正它,我做了:

^{pr2}$

但是我在转换为DF时仍然会出错。在

我查了字典如下:

 for key in recommendation.keys():
    if len(recommendation[key]) != 5:
        print key

并且发现0也被加到长度为5的值上。意味着我现在有一些长度为6的值。 e、 g字典值:

[12899423, 12907790, 12443129, 12558006, 12880407, 0]

如何更正while代码,使其仅在值列表的长度为<;5时向值列表中添加0。

还有没有更好的方法将字典转换成pandas数据帧? 字典键是:int和str


Tags: columns数据keyiddataframepandas列表字典
1条回答
网友
1楼 · 发布于 2024-10-02 18:23:52

您可以使用以下方法:

在Python2.7中,使用iteritems()返回字典上的迭代器,在Python3.x中,items()具有相同的行为

import numpy as np
import pandas as pd
#Your dictionary
d = dict( A = np.array([1,2]), B = np.array([1,2,3,4]) )

df = pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in d.iteritems() ]))

它将用缺失项的NaN值填充dataframe,然后您只需调用fillna函数:

^{pr2}$

您丢失的数据现在将用零填充

相关问题 更多 >