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

读取制表符分隔CSV至Dataframe时仅表头分隔值未分隔的问题

解决制表符分隔CSV读取后数据未分隔的问题

我来帮你一步步排查和解决这个头疼的问题:

先搞定路径转义的坑

你写的路径'C:\Users\LENOVO\Downloads\9.csv'在Python里有隐患——反斜杠\是转义字符,比如\U会被解析成Unicode转义序列,这可能导致pandas读错文件!

先把路径改成以下两种形式之一:

# 推荐用原始字符串(前面加r)
dfs = pd.read_csv(r'C:\Users\LENOVO\Downloads\9.csv', sep='\t', engine='python')
# 或者用双反斜杠转义
dfs = pd.read_csv('C:\\Users\\LENOVO\\Downloads\\9.csv', sep='\t', engine='python')

确认文件的真实分隔符

有时候标注是制表符分隔,但实际可能用了多个空格、全角制表符或者其他字符。你可以用两种方式验证:

  1. 用Notepad++打开文件,开启「显示所有字符」功能,直接看数据行的分隔符到底是什么;
  2. 用Python的csv模块先读几行确认:
import csv
with open(r'C:\Users\LENOVO\Downloads\9.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f, delimiter='\t')
    print("表头行:", next(reader))
    print("第一行数据:", next(reader))

如果输出的第一行数据是一整串字符串(没被拆分成列表元素),说明分隔符根本不是\t,替换成实际的分隔符就行。

处理引号或编码干扰

如果数据里有被引号包裹的字段(比如字段内容本身包含制表符),得让pandas正确识别引号:

import csv
dfs = pd.read_csv(r'C:\Users\LENOVO\Downloads\9.csv', sep='\t', engine='python', quoting=csv.QUOTE_ALL)

要是文件是GBK等非UTF-8编码,记得加上编码参数:

dfs = pd.read_csv(r'C:\Users\LENOVO\Downloads\9.csv', sep='\t', engine='python', encoding='gbk')

最后验证结果

修改后先打印基本信息和前几行,确认数据是否正确分隔:

print(dfs.info())
print(dfs.head())

这时候再访问dfs['Product Id']应该就不会触发KeyError了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:44:58