You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas读取双引号内含逗号、撇号的CSV出现ParserError问题问询

解决Pandas读取含引号内嵌逗号的CSV报错问题

报错根源

你之前配置的quoting=csv.QUOTE_ALL参数不符合当前CSV的格式规则:该参数要求CSV所有字段都必须被双引号包裹,但你提供的CSV中只有包含逗号、空格的字段才用双引号包裹,其余字段无引号,导致解析器识别引号逻辑错乱,无法正确区分字段分隔逗号和内容逗号。

可行解决方案

方案1:调整read_csv参数(推荐,无需额外处理)

直接替换原有读取代码即可,核心是把引用规则改为匹配实际CSV格式的csv.QUOTE_MINIMAL,必要时切换解析引擎避免C引擎的边界兼容问题:

import pandas as pd
import csv

myfilename = 'Input.csv'
myexpenses = pd.read_csv(
    myfilename,
    skipinitialspace=True,
    quotechar='"',
    quoting=csv.QUOTE_MINIMAL,  # 仅带特殊字符的字段被引号包裹,匹配你当前CSV格式
    engine='python'  # 若C引擎仍有解析偏差,用Python引擎兼容性更强,仅大文件时速度稍慢
)

注:不需要额外处理字符串中的撇号(单引号),你指定的quotechar='"'仅识别双引号为字段包裹符,单引号会被识别为普通内容字符。

方案2:用csv模块逐行解析兜底(极端格式问题时用)

如果CSV还有其他隐性格式问题,可以先用原生csv模块解析所有行,再转DataFrame,解析容错性更高:

import pandas as pd
import csv

myfilename = 'Input.csv'
all_rows = []
with open(myfilename, 'r', encoding='utf-8') as f:
    reader = csv.reader(f, quotechar='"', quoting=csv.QUOTE_MINIMAL, skipinitialspace=True)
    for row in reader:
        all_rows.append(row)
# 第一行是表头,后续是数据
myexpenses = pd.DataFrame(all_rows[1:], columns=all_rows[0])

常见问题排查

如果调整后仍有报错,可先检查文件编码:如果CSV是GBK/GB2312编码,在read_csv或open中加encoding='gbk'参数即可。


内容的提问来源于stack exchange,提问作者Greg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:57:01