如何使用Python pandas读取双引号内包含逗号的CSV文件
正确读取含引号包裹逗号的CSV文件方案
问题原因
- 第一段代码使用
quoting=3(对应csv.QUOTE_NONE),会让pandas忽略双引号的字段包裹作用,直接把所有逗号都识别为列分隔符,因此"art,music"内部的逗号会导致列数匹配错误,触发ParserError。 - 第二段代码自定义分隔符为
",,不符合标准CSV的分隔规则,因此出现字段合并的异常。
正确参数配置
你的CSV属于带引号转义的逗号分隔文件,使用默认的引号识别规则即可正常解析,无需自定义分隔符或关闭引号识别:
import pandas as pd import os import csv df = pd.read_csv( os.path.join(path, filename), engine='python', sep=',', quoting=csv.QUOTE_MINIMAL, # 也可直接写quoting=0,为默认值 quotechar='"' # 显式指定字段包裹符为双引号,更稳妥 )
效果验证
读取后的数据结构完全匹配原文件:
| state | industry | 2000 | 2005 |
|---|---|---|---|
| A | art,music | 2934 | 2454 |
| B | farm | 3949 | 2343 |
industry字段完整保留了内部的逗号,不会被拆分- 2000、2005数值字段会被自动识别为数值类型,无多余引号
内容的提问来源于stack exchange,提问作者Eunji Kim
相关产品推荐
相关产品推荐

