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

使用pd.read_csv处理含逗号单元格遇解析错误,求非跳过行解法

解决CSV含逗号字段的解析错误

问题出在表单生成的CSV里,带逗号的字段(比如"El Paso, Texas")被默认的逗号分隔符拆成了多个字段,导致解析报错。直接调整pd.read_csv的参数就能解决,不用手动改文件。

核心修改方案

给pd.read_csv添加quotechar='"'参数,明确告诉pandas双引号包裹的内容是单个字段,即使里面包含逗号:

import pandas as pd
import os
import csv  # 使用quoting参数时需要导入

# 提前初始化空DataFrame,避免循环时未定义报错
df = pd.DataFrame()

path = "你的目标文件路径"
for spreadsheet in os.listdir(path):
    file_name = os.path.join(path, spreadsheet)  # 用os.path.join避免路径拼接的兼容性问题
    
    if file_name.endswith("csv"):
        try:
            # 方案1:仅指定quotechar,适配大多数表单生成的CSV
            temp = pd.read_csv(file_name, encoding='utf-16', quotechar='"')
            # 方案2:配合quoting参数(可选,针对格式更复杂的情况)
            # temp = pd.read_csv(file_name, encoding='utf-16', quotechar='"', quoting=csv.QUOTE_MINIMAL)
            df = pd.concat([df, temp])
        except pd.errors.ParserError as e:
            print(f'文件 {file_name} 解析出错: {e}')
    else:
        continue

参数说明

  • quotechar='"':指定双引号作为字段的包裹符号,pandas会自动将双引号内的所有内容(包括逗号)识别为单个字段,不会误将内部逗号当成分隔符。
  • quoting=csv.QUOTE_MINIMAL(可选):仅解析被双引号包裹且包含分隔符的字段,这是pandas默认行为,但显式声明能适配一些格式不够标准的CSV文件。

另外,用os.path.join替代手动拼接路径,能适配Windows、Linux等不同系统的路径分隔符规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:07:38