已解决ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements

已解决ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements











报错代码



粉丝群里面的一个小伙伴想用pandas 读取Excel文件并修改列名,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下:

import pandas as pd
import sqlalchemy


df = pd.read_excel("./test.xls")
# 清洗数据
orgname = df['企业']
PRV = df['地区']
df['企业'] = orgname.str.replace("*", "", regex=False)
df['地区'] = PRV.str.replace("\n", "")
# 新增一列
df.insert(2, 'HonorName', '国家企业技术中心名单')
# 修改列名
df.columns = ['ListName', 'HonorName', 'TechnologyCenternvar', 'PRV']
print(df)


报错信息如下

ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements



报错翻译



报错信息翻译


值错误:长度不匹配:预期轴有5个元素,新值有4个元素





报错原因



报错原因

修改列名的时候报错了,因为新增一列后+加上原来的列就有5列了,但是修改列名的列表中只给出了4个列名,所以报错了。





解决方法



修改列名的时候,列表内元素个数一定在对应列数:

# 修改列名
df.columns = ['ListName', 'HonorName', 'TechnologyCenternvar', 'PRV''test']

帮忙解决

本文已收录于:《告别Bug》专栏

本专栏用于记录学习和工作中遇到的各种疑难Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中等等问题,订阅专栏+关注博主后如遇到其他问题可私聊帮忙解决!!!

猜你喜欢

转载自blog.csdn.net/yuan2019035055/article/details/126346279