Pandas read_csv导入白血病基因表达数据集时出现末尾列名错误问题
Pandas读取CSV列名错位排查方案
- 首先校验
read_csv的表头参数配置
确认你调用方法时没有错误设置header=None,也没有手动传入长度不符的names参数。该数据集列数多达22285列,若手动传入的列名列表长度短于实际列数,pandas会自动按内置规则补全剩余列名,直接导致末尾列名和实际不符。 - 排查CSV文件行格式异常
部分行可能存在未加引号的逗号、行尾换行符缺失/多余的问题,你可以增加参数测试读取:df = pd.read_csv("你的文件路径.csv", sep=",", quotechar='"', on_bad_lines="warn")
若控制台输出坏行警告,说明是部分行列数和表头行不一致,导致读取时列整体偏移,末尾列名对应错位。 - 排查表头不可见字符问题
你可以用文本编辑器打开CSV文件,提取表头行末尾的几个列名字符串,用print(repr(列名字符串))查看是否存在换行符、制表符等不可见字符,这类字符会导致pandas读取表头时错误合并相邻列名,后续所有列整体错位。 - 临时修复方案
若暂时无法定位根因,可以单独读取表头行作为列名列表,再传入read_csv避免自动解析错误:
# 单独读取表头行 with open("你的数据集文件路径.csv", "r", encoding="utf-8") as f: header_line = f.readline().strip() custom_col_names = header_line.split(",") # 读取全量数据,使用手动提取的列名,跳过原表头行 df = pd.read_csv( "你的数据集文件路径.csv", skiprows=1, names=custom_col_names )
内容的提问来源于stack exchange,提问作者Kieran Brian
相关产品推荐
相关产品推荐

