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

如何用Python Pandas正确读取以/t为分隔符的非标准CSV文件?

解决Pandas读取"/t"分隔CSV时引号处理异常的问题

正确读取方法

直接在read_csv中明确指定分隔符(用正则匹配"/t")和引号处理规则,就能让Pandas自动移除所有字段的引号:

import pandas as pd
import csv

# 关键参数:sep用正则匹配"/t"字符串,quoting指定所有带引号的字段都要解析
df = pd.read_csv(
    "your_file.csv",
    sep=r'/t',
    quotechar='"',
    quoting=csv.QUOTE_ALL
)

读取完成后,列名和数据行的双引号都会被自动移除,后续筛选列名Field label 3的问题即可解决。

原调用失败原因

你之前指定delimiter_char="/t"时,可能未用正则匹配分隔符,或未明确设置quoting参数。Pandas默认的引号解析逻辑仅识别了第一列的引号,后续字段因/t紧跟在引号后,被误判为字段内容的一部分,导致引号未被移除。

替代解决办法

如果上述方法因特殊场景无法生效,可尝试以下两种方案:

方案1:读取后手动清理引号

先按原方式读取文件,再批量移除列名和数据中的引号:

# 按原设置读取文件
df = pd.read_csv("your_file.csv", sep="/t")

# 清理列名的引号
df.columns = df.columns.str.replace('"', '')

# 清理所有字符串类型列的引号
df = df.apply(lambda col: col.str.replace('"', '') if col.dtype == 'object' else col)

方案2:预处理文件内容

先读取文件内容,替换掉引号和分隔符,再用Pandas读取:

import pandas as pd

with open("your_file.csv", "r") as f:
    # 移除所有双引号,再把"/t"替换为逗号(或其他标准分隔符)
    processed_content = f.read().replace('"', '').replace('/t', ',')

# 从处理后的字符串中读取数据
df = pd.read_csv(pd.StringIO(processed_content))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 14:21:06