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

能否在LSTM预测模型中遍历Pandas DataFrame获取指定行预测结果?

可行方案:获取指定范围行的预测数值数组

完全可以实现,核心是先对指定范围的原始数据完成与训练流程一致的预处理,再用模型预测后反标准化得到结果。以下是具体步骤和代码:

步骤1:提取指定范围的原始数据

先从DataFrame中取出你需要的行范围,比如第0到20行(注意iloc是左闭右开,包含第20行需用0:21):

# 提取0到20行的原始数据(包含第20行)
target_subset = df.iloc[0:21]

步骤2:执行一致的预处理操作

使用训练时的同一个StandardScaler实例对该子集做标准化处理(确保和训练数据的预处理逻辑完全一致,比如训练时只处理特定特征列,这里也要选择相同列):

# 预处理指定范围的数据
scaled_target = scaler.transform(target_subset)

步骤3:模型预测并反标准化

用训练好的模型对预处理后的子集预测,再通过inverse_transform还原到原始数值尺度:

# 预测
y_pred_subset = model.predict(scaled_target)
# 反标准化并转为整数
predicted_array = scaler.inverse_transform(y_pred_subset).astype(int)
# 输出结果
print("指定范围的预测数值数组:")
print(predicted_array)

你之前尝试的问题说明

  • df.iterrows()/df.iteritems():这两个方法遍历的是原始未预处理的数据,没有经过模型要求的标准化,无法直接得到预测结果。
  • for index, row in np.array([scaled_to_predict]):错误原因是np.array([scaled_to_predict])生成的二维数组,遍历每个元素时只有单行数据,无法解包成index, row两个值。如果要遍历预处理后的行,直接写:
    for row in scaled_to_predict:
        print(row)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:07:08