Pandas运行代码报KeyError: Predictions not in index如何解决
错误原因
这是列名拼写不匹配导致的pandas索引错误,核心问题是两处的列名写法不一致:
- 给
valid表新增预测值列时,你用的列名是Prediction(单数形式,末尾没有s) - 后续绘图取列、编写图例标签时,用的列名是
Predictions(复数形式,末尾多了s)
pandas对列名做精确字符串匹配,找不到你传入的Predictions列时,就会抛出这个KeyError。
修复方法
把两处的列名统一即可,两种改法任选一种就能解决问题:
- 改法1:统一使用单数列名
保持新增列的写法不变,把绘图、图例部分的列名改成和新增列一致的单数形式,修改后的对应代码段:valid['Prediction'] = predictions # 中间标题、坐标轴配置的代码无需改动 plt.plot(valid[['Close', 'Prediction']]) plt.legend(['Train','Val', 'Prediction'], loc= 'lower right') - 改法2:统一使用复数列名
保持后续绘图、图例的写法不变,只需要把新增列的列名改成复数形式即可:valid['Predictions'] = predictions
实用小提示:后续再遇到类似列找不到的报错,可以先运行
print(valid.columns)打印出当前DataFrame里实际存在的所有列名,对照着写就能快速排查拼写、多余空格这类低级错误。
内容的提问来源于stack exchange,提问作者cody
相关产品推荐
相关产品推荐

