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

如何解决Pandas加载CSV文件时的引号错误问题

解决Pandas读取含未转义双引号的CSV问题

你的CSV数据问题出在字段内的双引号未按CSV规范转义:CSV标准要求字段内的双引号必须用两个连续双引号("")表示,但你的数据里存在单个双引号直接出现在字段内部(比如第4行的"PANELBOARDS"),导致Pandas解析时提前闭合字段,引发错误。不需要手动修复,以下是可行的自动处理方案:

方法一:预处理CSV文件(推荐)

用正则表达式批量修复所有行的未转义双引号,再用Pandas读取:

import re
import pandas as pd

# 读取原始CSV内容
with open('your_data.csv', 'r', encoding='utf-8') as f:
    content = f.read()

# 正则替换:匹配字段内部的单个双引号,替换为符合规范的双引号对
fixed_content = re.sub(r'(?<="[^"])"(?=[^"]")', r'""', content)

# 写入修复后的文件
with open('fixed_data.csv', 'w', encoding='utf-8') as f:
    f.write(fixed_content)

# 正常读取修复后的CSV
df = pd.read_csv('fixed_data.csv', quotechar='"', doublequote=True)
print(df)

方法二:实时处理错误行(无需中间文件)

结合Python内置csv模块捕获解析错误,实时修复后转为DataFrame:

import csv
import re
import pandas as pd

rows = []
with open('your_data.csv', 'r', encoding='utf-8') as f:
    line_num = 0
    for line in f:
        line_num += 1
        try:
            # 尝试解析当前行
            row = next(csv.reader([line], quotechar='"', doublequote=True))
            rows.append(row)
        except csv.Error:
            # 解析失败时自动修复该行的双引号
            fixed_line = re.sub(r'(?<="[^"])"(?=[^"]")', r'""', line.strip())
            fixed_row = next(csv.reader([fixed_line], quotechar='"', doublequote=True))
            rows.append(fixed_row)
            print(f"已自动修复第{line_num}行")

# 转为DataFrame(若有表头,可将rows[0]设为列名)
df = pd.DataFrame(rows)
print(df)

关键说明

  • doublequote=True是Pandas和csv模块的默认参数,会将字段内的""自动解析为单个",保证单元格内容还原正确。
  • 正则表达式(?<="[^"])"(?=[^"]")精准匹配字段内部的单个双引号,不会误改字段首尾的包裹双引号。

内容的提问来源于stack exchange,提问作者Luis Gutiérrez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:06:26