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

线性回归预测中删除Pandas列转Numpy数组时出现KeyError报错

搞定这个KeyError!问题出在drop()的参数用法上

嘿,别担心,这个错误和numpy版本一点关系都没有,是你调用pandas的drop()方法时参数传错啦!

错误原因拆解

你写的这行代码:

X = np.array(data.drop(predict), 1)

这里有两个关键问题:

  • data.drop(predict) 默认是按行(axis=0)来执行删除操作的,它会尝试去找索引值等于predict(也就是'G3')的行,但你的数据里根本没有行索引叫'G3'的条目,所以直接触发了KeyError。
  • 后面的,1是传给np.array()的第二个参数,这完全不是给drop()的轴参数——相当于你根本没告诉drop()你要删除的是列。

正确写法来啦

要删除指定列,必须把axis=1作为drop()的参数传进去,修正后的代码是:

X = np.array(data.drop(predict, axis=1))

这样drop()就会正确识别到你要删除名为'G3'的列,而不是错误地去找行索引。

额外小技巧

如果你喜欢更直观的写法,也可以用pandas的布尔索引来提取除了G3之外的列,效果完全一样:

X = np.array(data[data.columns != predict])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:33:36