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

如何用Pandas读取^G分隔且带引号的CSV并去除引号与转义符?

解决Pandas读取带引号、^G分隔CSV时的引号和转义问题

问题根源

你设置了quoting=csv.QUOTE_NONE,这会让Pandas完全无视字段的引号包裹,直接把引号、转义斜杠当成普通内容读入,所以结果里才会残留这些符号。

正确读取方案

方案1:精准指定分隔符+启用引号解析

^G是ASCII码29对应的分组分隔符,直接用chr(29)指定分隔符比正则更准确,同时去掉quoting=csv.QUOTE_NONE,改用csv.QUOTE_ALL适配所有字段带引号的场景:

import pandas as pd
import csv

df = pd.read_csv(
    f,
    engine="python",
    sep=chr(29),
    header=None,
    names=columns,
    quoting=csv.QUOTE_ALL
)

方案2:正则分隔符适配写法

如果一定要用正则匹配^G,注意它的十六进制表示是\x1D,配合正确的引号解析参数:

df = pd.read_csv(
    f,
    engine="python",
    sep=r"\x1D",
    header=None,
    names=columns,
    quoting=csv.QUOTE_ALL
)

方案3:读取后批量清理(备选)

如果上述方案无法生效,可以读取后对所有字符串字段批量清理:

# 去除首尾引号,同时把转义的\"还原成"
df = df.apply(lambda col: col.str.strip('"').str.replace('\\"', '"') if col.dtype == 'object' else col)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:42:07