CSV文件编码错误导致无法向量化,pandas未正确拆分列如何解决
你遇到的这个问题既不是pandas的bug,也不是编码配置错误,核心原因是读取CSV文件时没有指定正确的列分隔符。
pandas的read_csv方法默认使用逗号,作为列分隔符,如果你的原始CSV文件实际使用制表符、分号或者其他特殊符号作为两列的分隔标识,pandas就无法自动识别拆分列,会把所有字段拼接为单独一列,列名也会变成Sentence,Label的合并形式,和你观察到的现象完全吻合。
解决步骤
- 先确认问题诊断是否正确,执行以下代码输出列名:
print(df.columns)
如果输出结果为Index(['Sentence,Label'], dtype='object'),即可确认是分隔符识别错误导致的问题。
2. 修改CSV读取代码,指定正确的分隔符:
- 如果原始文件是制表符分隔,使用如下代码:
import pandas as pd df = pd.read_csv("你的文件路径.csv", sep="\t", encoding="utf-8")
- 如果是分号分隔,修改为
sep=";"即可;如果是空格类分隔,可以使用sep="\s+"自动匹配多空白分隔符。你也可以直接用文本编辑器打开原始CSV文件,查看两列之间的分隔符号,直接填入sep参数即可。
- 读取完成后执行
print(df.head())确认Sentence和Label两列正常拆分,再运行后续的CountVectorizer相关代码就不会出现找不到Sentence列的报错。
内容的提问来源于stack exchange,提问作者need_help12
相关产品推荐
相关产品推荐

