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

Python读取CSV时触发KeyError: 'age'问题求助

问题排查与解决

问题根源

你打印出的列名Index(['age;SEX;bmi;bp;S1;S2;S3;S4;S5;S6;Y'], dtype='object')说明pandas把整行列名当成了单个列,根本没识别出多列结构。原因是你的CSV文件用**分号(;)**作为字段分隔符,但pd.read_csv默认用逗号(,)解析,导致解析逻辑完全错误。

直接解决方法

在读取CSV时明确指定分隔符参数sep=';':

data = pd.read_csv('data.csv', sep=';')

执行后再打印列名,就能得到正常的多列索引:Index(['age', 'SEX', 'bmi', 'bp', 'S1', 'S2', 'S3', 'S4', 'S5', 'S6', 'Y'], dtype='object'),此时获取'age'、'bmi'等列就不会触发KeyError了。

兼容优化(可选)

如果CSV里的字段前后存在空格,可以用sep='\s*;\s*'自动忽略空格;若遇到解析兼容问题,可搭配engine='python'参数:

data = pd.read_csv('data.csv', sep='\s*;\s*', engine='python')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:28:08