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

如何使用pandas识别未知分隔符并正确读取CSV文件?

分隔符排查步骤
  • 不要用Excel打开文件排查,Excel会自动转码掩盖原始分隔符,直接用纯文本编辑器(记事本、VS Code、Notepad++均可)打开源文件,直接观察前10行内容里字段间的间隔符号,注意排查全角符号、不可见控制符、多字符组合间隔。
  • 肉眼无法识别时,直接读取文件原始字节定位分隔符,执行以下代码打印前500字节的原始内容,所有不可见字符都会以转义形式显示:
with open("你的国民收入数据集文件路径.csv", "rb") as f:
    print(f.read(500))
  • 不想手动排查可以直接启用pandas的自动分隔符检测,注意必须搭配Python引擎使用,C引擎不支持该功能:
df = pd.read_csv("你的文件路径.csv", sep=None, engine='python')
多分隔符场景读取方案
  • 逐一尝试单分隔符失败,基本可以判定文件使用混合分隔符(比如逗号+多空格、制表符+分号组合、字段间存在不定数量空格),此时直接传入正则表达式作为sep参数即可匹配所有分隔场景:
import pandas as pd
df = pd.read_csv(
    "你的文件路径.csv",
    sep=r'[,\t;| ]+', # 匹配逗号、制表符、分号、竖线、空格的1次及以上组合作为分隔符
    engine='python',
    skipinitialspace=True # 自动忽略分隔符前后的多余空白字符
)
  • 如果排查发现文件没有统一分隔符,是靠每列固定字符宽度对齐的格式,直接改用固定宽度读取接口即可,不需要强行用read_csv:
df = pd.read_fwf("你的文件路径.csv")
  • 注意:之前执行的df=pd.read_csv("file name", sep='delimiter')是错误写法,delimiter是sep参数的别名,不是具体分隔符值,传入该字符串会让pandas查找内容中出现的"delimiter"文本作为分隔标记,必然读取失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:48:22