使用Pandas读取含缺失列名的CSV文件遇ValueError问题求助
解决CSV读取报错并实现预期列名
错误原因
使用usecols=range(0,8)时,pandas会将整数视为列名字符串去匹配表头,但你的CSV中空列的表头会被默认处理为Unnamed: X格式,不存在'0'、'1'这类列名,因此触发匹配错误。
解决方案
方案1:直接读取所有列(推荐)
无需额外指定usecols,pandas会自动为无列名的空列生成Unnamed: X格式的列名,完全符合预期:
import pandas as pd df1 = pd.read_csv('myFile.csv')
验证列名:
print(df1.columns) # 输出:Index(['id', 'Unnamed: 1', 'Unnamed: 2', 'To', 'DD', 'Unnamed: 5', 'Unnamed: 6', 'Unnamed: 7'], dtype='object')
方案2:强制读取前8列(限制列数场景)
如果需要确保只读取前8列(避免文件后续新增列影响),可以用lambda函数筛选列位置:
import pandas as pd df1 = pd.read_csv('myFile.csv', usecols=lambda col_idx: col_idx < 8)
该方式兼容绝大多数pandas版本,能准确选中前8列并生成预期列名。
内容的提问来源于stack exchange,提问作者Zanam
相关产品推荐
相关产品推荐

