使用Pandas读取含内部分隔符与引号的CSV文件报错求助
解决Pandas读取含未转义引号的CSV报错问题
问题根源
你遇到的Error tokenizing data错误,是因为CSV文件的Description字段里存在未按规范转义的双引号:"Testing the data file, Journey"s Man"。按照CSV标准,字段内的双引号必须用两个连续双引号("")转义,而这里的单个双引号会让Pandas解析器误判字段结束位置,把后续内容当成新字段,导致字段数量不匹配。
解决方案
方案1:修复源CSV文件(最稳妥)
直接修改出错行的字段内容,把Journey"s Man改为Journey""s Man,符合CSV格式规范。修改后用你原本的代码即可正常读取:
import pandas as pd data = pd.read_csv(file_name, quotechar='"', delimiter=",")
方案2:不修改源文件,用Python引擎适配不规范CSV
如果无法修改源文件,切换到Python解析引擎(默认C引擎对不规范CSV兼容性差),通过参数调整解析规则:
import pandas as pd import csv data = pd.read_csv( file_name, delimiter=",", quotechar='"', engine="python", doublequote=False, escapechar='"' )
engine="python":启用纯Python解析器,支持更多自定义规则doublequote=False:关闭默认的双引号转义逻辑escapechar='"':指定用双引号自身作为转义符,让解析器把字段内的单个双引号识别为内容的一部分
如果字段内的是单引号(比如输入笔误的Journey's Man),也可以用更简单的配置:
import pandas as pd data = pd.read_csv( file_name, delimiter=",", quotechar='"', engine="python", skipinitialspace=True )
内容的提问来源于stack exchange,提问作者Yen
相关产品推荐
相关产品推荐

