使用Pandas读取特殊格式CSV文件遇ParserError错误求助
解决Pandas读取格式异常CSV文件的问题
你的CSV文件存在两个格式问题:首尾字段缺失双引号、部分字段内部包含分隔符;,导致pd.read_csv解析失败。以下是具体解决方法:
方法一:预处理修复文件格式
先读取文件并修复每行的首尾引号,再用Pandas读取修复后的内容,这种方式能彻底解决格式问题:
import pandas as pd from io import StringIO local_path = "./" # 替换为你的文件路径 fixed_content = [] # 读取原文件并修复每行格式 with open(f'{local_path}/df_pf.csv', 'r', encoding='cp1252') as f: # 处理表头(若表头格式与数据行一致,需同样修复;若正常则直接保留) header = f.readline().strip() fixed_content.append(header) # 处理数据行:首尾补双引号 for line in f: cleaned_line = line.strip() fixed_line = f'"{cleaned_line}"' fixed_content.append(fixed_line) # 将修复后的内容转为可读取的流,再用Pandas解析 df = pd.read_csv( StringIO('\n'.join(fixed_content)), sep='";"', # 字段实际分隔符为";" engine='python', encoding='cp1252', quotechar='"' )
代码说明
- 预处理逻辑:给每行首尾添加双引号,让所有字段都被正确包裹,解决首尾字段缺引号的问题。
- 解析参数设置:将分隔符设为
";"(原文件字段间的实际分隔符),同时指定quotechar='"',让Pandas忽略字段内部的;,避免误拆分。
原代码报错原因
原代码使用sep=';'拆分字段,但文件中字段内部包含;,且首尾字段未被引号包裹,导致Pandas解析时无法识别合法的字段边界,抛出ParserError。
内容的提问来源于stack exchange,提问作者O. Mortosa
相关产品推荐
相关产品推荐

