pandas字段分列遇到ValueError: Length of values does not match length of index

项目场景:

在使用pandas针对字段进行分列时遇到这个问题,ValueError: Length of values does not match length of index。

问题描述

例如:针对字段进行分列

data['time'] = data['time'].astype(str)

data['day'] = data['time'].str.split(" ")[0]

data['hour'] = data['time'].str.split(" ")[1]


原因及解决方案:

原来是语句写错了,这里只需要改成:

data['day'] = data['time'].str.split(" ",expand = True)[0]

data['hour'] = data['time'].str.split(" ",expand = True)[1]

或者:

data['day'] = data['time'].str.split(" ").str[0]

data['hour'] = data['time'].str.split(" ").str[1]

新手小白,着实是还有很大进步空间。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
valueerrorvalues的长度(8)与index的长度(4363)不匹配。 这个错误通常出现在使用pandas库操作数据时。它发生在尝试将一个长度不匹配的列表或数组作为数据集的列添加到DataFrame对象中。 造成这个错误的原因可能有几种: 1. 数据的长度不一致:如果DataFrame对象的index有4363个元素,但要添加的列只有8个值,长度不匹配导致出错。 解决方法可以有以下几点: 1. 检查数据的长度:确认要添加的列的长度与DataFrame对象的index长度一致。 2. 确保数据的对应关系:如果数据的长度一致,但仍然出现错误,可能是因为数据集的index与要添加的列的index对应不上。可以尝试重新设置数据的index,或者使用merge函数将两个数据集按照指定的列进行合并。 以下是一个示例代码,展示了如何解决这个问题: ```python import pandas as pd # 假设要将一个长度为8的列表添加为DataFrame的一列 data = [1, 2, 3, 4, 5, 6, 7, 8] df = pd.DataFrame(index=range(4363)) # 检查数据的长度是否相等 if len(data) == len(df.index): df['new_column'] = data else: print("数据长度不匹配!") # 或者使用merge函数将两个数据集合并 data = pd.DataFrame(data, columns=['new_column']) df = pd.merge(df, data, left_index=True, right_index=True) ``` 总之,要解决valueerrorlength of values (8) does not match length of index (4363)错误,我们需要确保要添加的列的长度与DataFrame对象的index长度一致,或者使用合适的方法将两个数据集进行合并。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值