我正在对Arima使用以下代码,以预测从2018-10-17
到2018-10-22
的给定日期值的输出值。但是我得到的错误是
错误: “ int()参数必须是字符串,类似字节的对象或数字,而不是'Timestamp'”。
model = ARIMA(df, order=(5,1,0))
model = model.fit(disp=0)
pred = model.get_prediction(start=pd.to_datetime('2018-10-17'),
end=pd.to_datetime('2018-10-22'),
dynamic=True)
predict()
不接受datetime
个对象吗?它说在文档中。
答案 0 :(得分:0)
假设您正在使用statsmodels.tsa.statespace.sarimax.SARIMAXResults.get_prediction
,请注意start
和end
期望int
,str
或日期时间。根据文档,str可以是日期字符串,因此您可以使用
pred = model.get_prediction(start='2018-10-17',
end='2018-10-22',
dynamic=True)
Pandas Timestamps与Python datetime.datetime对象不同。
如果您希望使用日期时间,请使用Timestamp.to_pydatetime()
方法将“熊猫时间戳”转换为Python datetime.datetime对象:
In [181]: pd.to_datetime('2018-10-17')
Out[181]: Timestamp('2018-10-17 00:00:00')
In [180]: pd.to_datetime('2018-10-17').to_pydatetime()
Out[180]: datetime.datetime(2018, 10, 17, 0, 0)
或直接直接创建datetime.datetime对象:
In [184]: import datetime as DT
In [185]: DT.datetime(2018,10,17)
Out[185]: datetime.datetime(2018, 10, 17, 0, 0)
pred = model.get_prediction(start=DT.datetime(2018, 10, 17),
end=DT.datetime(2018, 10, 22),
dynamic=True)