pandas读取CSV文件时如何忽略"类特定字符解决解析报错
pandas读取CSV时反斜杠+引号导致解析报错的免改源文件解决方案
触发ParserError: Error tokenizing data. C error: Expected 6 fields in line 2360, saw 8报错,且确认是行内\"字符序列导致解析失败时,可通过以下pandas读取参数配置解决,无需手动修改源文件。
- 优先方案:指定转义字符参数适配特殊字符规则
该报错本质是pandas默认解析规则没有把反斜杠识别为转义符,误把转义后的引号当成了字段边界标记。读取时传入escapechar='\\'参数即可在读取阶段处理这类特殊字符,不会改动源文件:
该配置会让pandas将反斜杠后的引号识别为字段内部的普通内容,不会错误拆分字段,可直接解决字段数不匹配的报错,全程不会丢失数据。import pandas as pd # 替换为实际CSV文件路径 df = pd.read_csv("your_file.csv", escapechar='\\') - 备选方案1:关闭引号特殊解析适配非标准格式CSV
如果源文件生成逻辑不规范,引号使用没有统一规则,可以搭配Python标准库csv的引号配置,关闭pandas默认的引号边界识别逻辑,所有引号、反斜杠都会被当作普通字符处理:import pandas as pd import csv df = pd.read_csv( "your_file.csv", escapechar='\\', quoting=csv.QUOTE_NONE ) - 备选方案2:坏行自动跳过(仅适合对数据完整性要求低的场景)
如果文件中除了反斜杠加引号的问题,还有其他零散格式错误,可以添加坏行跳过参数自动丢弃解析失败的行,缺点是会丢失对应行的全部数据:df = pd.read_csv("your_file.csv", on_bad_lines='skip')
注意:不建议优先使用坏行跳过方案,指定
escapechar的方式可以在不丢失任何数据的前提下解决当前场景的问题,是适配度最高的方案。
内容的提问来源于stack exchange,提问作者Ahmed D.
相关产品推荐
相关产品推荐

