运行Kaggle泰坦尼克号代码时出现pandas索引定位错误求助
解决pandas IndexEngine.get_loc()报错
报错本质
这个报错是因为你试图访问的DataFrame列名不存在,或是列名的拼写、大小写、空格与实际DataFrame中的列名不匹配。
排查与解决步骤
- 先确认DataFrame的所有列名,运行代码:
将输出的列名和你代码中使用的列名逐一比对(比如截图里涉及的print(df.columns.tolist())Sex、Embarked、Age等),确保完全一致(注意大小写,别把Sex写成sex)。 - 检查数据预处理代码,确认没有误删需要的列,或是重命名列时出现拼写错误。比如使用
df.drop()或df.rename()后,要保证后续代码使用的列名和操作后的列名匹配。 - 如果是建模时传入特征列(比如
X = df[['Pclass', 'Sex', 'Age']]),要确认这些列确实存在于当前DataFrame中,没有因为之前的操作被删除或改名。 - 排查列名是否存在隐形空格,比如列名实际是
'Age '(带空格)但你写的是'Age',可以用以下代码去除列名首尾空格:df.columns = df.columns.str.strip()
内容的提问来源于stack exchange,提问作者Bocley
相关产品推荐
相关产品推荐

