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

使用Pandas读取CSV并指定列名时出现KeyError问题求助

解决Pandas修改列名后出现KeyError的问题

我来帮你排查问题所在——你遇到的KeyError: 'X',本质是CSV文件的导入方式和你预期的不一致,导致修改列名后列名与实际数据不匹配。

问题根源

你的CSV文件是用空格分隔内容的,但Pandas的pd.read_csv()默认使用**逗号(,)**作为分隔符。这就导致:

  • 你直接用默认参数导入时,Pandas会把第一行的X Y当成一个单独的列名,所有后续数据也会被塞进这一列里。
  • 当你强行设置data.columns = ['X', 'Y']时,列名的数量(2个)和实际数据的列数(1个)不匹配,后续访问data['X']自然找不到对应的列,抛出KeyError。

正确的解决步骤

1. 按空格分隔符正确导入CSV

告诉Pandas用空格作为分隔符,同时让它把第一行识别为列名:

import pandas as pd
# sep='\s+'可以匹配任意数量的连续空格,避免因多个空格导致的解析错误
data = pd.read_csv("data.csv", sep='\s+')

导入完成后,Pandas会自动把X和Y设为列名,你根本不需要手动修改列名。

2. 如果CSV没有单独的列名行

要是你的CSV第一行就是数据(比如X Y并不是文件里的内容,而是你自己想加的列名),那需要加上header=None参数,再手动设置列名:

data = pd.read_csv("data.csv", sep='\s+', header=None)
data.columns = ['X', 'Y']

3. 验证导入结果

每次导入后,建议先打印前几行确认数据是否正确解析:

print(data.head())

如果输出显示列名是X和Y,且对应的数据行正确,那后续绘图就不会有问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:58:56