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

使用Pandas读取CSV时如何去除字段中的引号?

Pandas读取CSV时如何去除字段中的引号?

嘿,我太懂你遇到的这个糟心问题了——这种全字段带双引号、分隔符还是逗号加空格的CSV,默认的read_csv参数根本摸不清套路,才导致引号硬生生留在了列名和值里。我给你说个一步到位的解决办法,完全不用事后遍历去删引号!

先拆解下问题根源:你的CSV里字段之间是用**, (逗号加空格)**分隔的,但Pandas默认只认单纯的逗号当成分隔符。这样一来,它读到"Version", "Date"的时候,会把"Version"当成第一个列名,然后把 "Date"(带前置空格和引号)当成第二个列名,引号自然就被当成内容保留下来了。

只要调整几个read_csv的参数,就能让Pandas完美识别这种格式:

import pandas as pd
import csv

df = pd.read_csv(
    'myfile.csv',
    sep=', ',          # 明确指定分隔符是逗号加空格
    quotechar='"',     # 告诉Pandas双引号是字段的包裹符号,不是内容的一部分
    escapechar='\\',   # 识别反斜杠为转义符,正确解析像"A\, C"这种带转义逗号的字段
    quoting=csv.QUOTE_ALL  # 声明所有字段都被双引号包裹
)

用这段代码读取后,你再看DataFrame的内容:列名会变成干净的Version、Date、Code,所有值的引号会被自动剥离,就连那个带转义的"A\, C"也会被正确解析成A, C,完全符合预期!

至于你之前用quoting=csv.QUOTE_NONE反而更糟的原因:这个参数会让Pandas彻底忽略引号的特殊作用,把所有引号都当成普通文本,自然就给原本没引号的列也硬加上了引号,完全搞反了方向。

以后遇到类似的CSV格式问题,先盯紧分隔符、包裹符、转义符这三个关键点,调整对应参数就行,比事后遍历删引号高效太多啦。

备注:内容来源于stack exchange,提问作者jeremywat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 03:18:09