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

使用Pandas读取CSV时数据被附加=" ",该如何去除?

解决Pandas读取CSV时数据被=" "包裹的问题

先看你遇到的情况(如图所示):
CSV数据被="包裹的示例

这种问题一般是CSV文件由某些工具导出时,用了="..."的特殊格式包裹字段(用来规避逗号等分隔符的干扰,但不符合Pandas默认的CSV解析规则),Excel重新保存时会自动清理掉这种冗余格式,所以能正常读取。不用每次依赖Excel,直接用Pandas就能处理,给你几个实用方法:

  • 方法一:正则全局替换(最简单)
    读取后直接用正则把每个字段开头的="和结尾的"去掉:
import pandas as pd

df = pd.read_csv("your_file.csv").replace(r'^="(.*)"$', r'\1', regex=True)

这个正则会精准匹配="内容"的格式,只保留中间的实际数据,不会影响字段内本身含有的引号(如果有的话)。

  • 方法二:读取时用转换器处理
    如果只想针对特定字段清理,或者需要更灵活的逻辑,可以用converters参数:
import pandas as pd

def clean_value(val):
    # 去除前后的="和"
    return val.strip('="')

# 先获取所有列名
cols = pd.read_csv("your_file.csv", nrows=0).columns
# 给每列都应用清理函数
df = pd.read_csv("your_file.csv", converters={col: clean_value for col in cols})
  • 方法三:预处理文本文件
    如果文件格式比较特殊,还可以先按文本读取并预处理每行,再交给Pandas解析:
import pandas as pd
from io import StringIO

with open("your_file.csv", "r", encoding="utf-8") as f:
    # 替换每行中的="为",再去掉首尾的引号
    processed_lines = [line.replace('="', '"').strip('"\n') + "\n" for line in f]

# 把处理后的内容转为可读取的对象
df = pd.read_csv(StringIO("".join(processed_lines)))

测试下来,第一种方法最适合你的场景,快速解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:36:21