无法为未来日期预测值:DataFrame预测代码执行异常咨询
解决DataFrame未来日期预测的索引缺失问题
问题核心是你要预测的日期不在原DataFrame的索引范围内,predict方法需要目标日期存在于数据集索引中才能完成赋值。按以下步骤解决:
步骤1:扩展DataFrame的日期索引
先把需要预测的日期添加到原数据的索引中,确保索引为datetime类型:
import pandas as pd # 确保原DataFrame的索引是datetime格式(若未转换则执行此步) df.index = pd.to_datetime(df.index) # 生成包含原数据日期和预测日期的完整序列 full_date_range = pd.date_range(start=df.index.min(), end='2017-08-22') # 重新索引,新增日期对应的原有数值列会自动填充NaN,不影响后续预测 df = df.reindex(full_date_range)
步骤2:执行预测赋值
现在索引已包含目标日期,直接运行你的预测代码即可:
df['forecast'] = results.predict(start='2017-08-16', end='2017-08-22')
替代方案:单独生成预测后合并
如果不想修改原DataFrame的索引,也可以先生成预测结果,再合并到原数据:
# 生成带日期索引的预测结果Series forecast_series = results.predict(start='2017-08-16', end='2017-08-22') # 将预测结果合并到原DataFrame,outer join保留所有日期 df = df.join(forecast_series.rename('forecast'), how='outer')
内容的提问来源于stack exchange,提问作者nishak92
相关产品推荐
相关产品推荐

