使用LSTM预测未来值:生成日期时遇TypeError报错求助
销售预测日期生成问题解决方案
错误根源
你用df.index[-1]获取的是整数类型的索引值(比如你的数据里是1429),但DateOffset只能和datetime类型的日期做运算,整数和它相加必然触发TypeError: 'int' object is not callable。
正确操作步骤
1. 修复日期列类型并替换索引
先把原本object类型的Date列转成datetime格式,再把它设为DataFrame的索引:
import pandas as pd # 转换Date列为datetime类型 df['Date'] = pd.to_datetime(df['Date']) # 将Date列设为索引,替换原整数索引 df = df.set_index('Date')
2. 生成2023-2025年的未来日期
现在索引是datetime类型了,就能用DateOffset正确生成未来日期。比如生成3年(36个月)的月度日期:
from pandas.tseries.offsets import DateOffset # 获取现有数据的最后一个日期 last_date = df.index[-1] # 生成从下一个月开始的36个月度日期 future_dates = [last_date + DateOffset(months=x) for x in range(1, 37)] # 创建带未来日期索引的空DataFrame,保留原列名 future_df = pd.DataFrame(index=future_dates, columns=df.columns)
3. 合并原数据与未来空表(可选)
如果需要把历史数据和未来预测的空行放在一起,直接拼接:
combined_df = pd.concat([df, future_df])
这样得到的结果就是索引为连续datetime日期、后续行预留Sales列用于填充预测值的格式,和你期望的样式一致。
内容的提问来源于stack exchange,提问作者Kavya
相关产品推荐
相关产品推荐

