ValueError: arrays must all be same length原因及解决方法

ValueError: arrays must all be same length

使用“DataFrame(dict)”语句,即用dict构建DataFrame时,key会变成列名column,(list-like)values会变为行名row,如果values的个数不一致(可以想象成表格的两列对不齐)就会产生这个错误。


解决方法:
1、把个数弄一致。

2、加一个“Orient =‘index’”,变成面向行的,这样行数为key值,列数为最长的values的长度,而其他较短的values则用None填充。

d={ 'NUM' : range(3),
    'C' : ['c1','c2','c3'],
    'D' : ['d1','d2','d3','d4'],
    'E' : ['e1','e2','e3'],
    'B' : ['b1','b2','b3']}

df = pd.DataFrame.from_dict(d, `orient='index'`)
print(df)

行数为key值,列数为最长的values的长度,而其他较短的values【原来对不齐的】则用None填充。

输出结果:

      0   1   2     3
NUM   0   1   2  None
C    c1  c2  c3  None
D    d1  d2  d3    d4
E    e1  e2  e3  None
B    b1  b2  b3  None

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值