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

神经网络预测值追加逆缩放测试数据触发IndexError问题求助

解决方法:给逆缩放后的测试数据添加预测值

你猜的完全没错!这个IndexError确实是因为执行scaler.inverse_transform()后,Xtest从Pandas DataFrame变成了NumPy数组——而NumPy数组不支持用字符串列名(比如"prediction")来赋值,它只认整数索引、切片这类合法的索引方式。

下面给你两种实用的解决方案:

方案1:转回Pandas DataFrame后添加列

如果后续需要用DataFrame的便捷操作(比如查看、筛选、导出),推荐先把逆缩放后的数组转回DataFrame:

# 假设你之前保留了原始特征的列名(比如训练前的X列名)
original_feature_names = ["特征1", "特征2", ...]  # 替换成你实际的列名

# 将逆缩放后的NumPy数组转回DataFrame
Xtest_df = pd.DataFrame(Xtest, columns=original_feature_names)

# 现在就可以正常添加预测值列了
Xtest_df["prediction"] = pred

⚠️ 注意:如果没保留原始列名,转回的DataFrame会用0、1、2...作为列名,记得提前存好原数据的列名哦。

方案2:直接用NumPy拼接数组

如果后续不需要DataFrame,只想得到包含预测值的数值数组,可以用np.hstack()横向拼接:

# 先把一维的预测值转成二维数组(和Xtest的维度匹配)
pred_2d = pred.reshape(-1, 1)

# 横向拼接原Xtest数组和预测值数组
Xtest_with_pred = np.hstack((Xtest, pred_2d))

这样得到的Xtest_with_pred是一个新的NumPy数组,最后一列就是你的预测值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:01:41