我正在使用SARIMAX做一个预测模型,我想添加列标题到输出,但我有麻烦。我可以通过执行.to_csv来绕过它,然后在添加标签之前将它作为一个新的数据格式读取回来,但是我希望能够在一个步骤中完成它,而不是编写另一个文件。
mod = sm.tsa.statespace.SARIMAX(y,
order=(0, 1, 1),
seasonal_order=(0, 1, 1, 12),
enforce_stationarity=False,
enforce_invertibility=False)
results = mod.fit()
pred_uc = results.get_forecast(steps = 48)
pred_ci = pred_uc.conf_int()
forecast = pd.DataFrame(pred_uc.predicted_mean, columns = ['TIME', 'column_2'])ValueError:错误的项目数通过1,放置意味着2
ValueError:传递值的形状为(1,48),指数表示(2,48)
发布于 2018-12-28 06:01:58
经过一段时间的阅读,我最终找到了一个最适合的解决方案,因为每次都会迭代并为结果创建一个新列。
compiled_df[column_2] = forecast[0]
compiled_df.index.name = 'TIME'谢谢你的帮助
发布于 2018-12-27 00:30:40
pred_uc.predicted_mean是熊猫系列对象,与索引(例如日期索引)相关联。
您可以将其转换为DataFrame (例如,pred_uc.predicted_mean.to_frame() ),但它仍然只有一个列和一个索引。
如果出于某种原因,您必须以所显示的形式保存它,您可以这样做,例如:
pred_uc.predicted_mean.to_frame('column_2').rename_axis('time').reset_index()这就会给出这样的结果:
time column_2
0 2009Q4 3.791093
1 2010Q1 1.864600
2 2010Q2 0.680030
3 2010Q3 2.299168https://stackoverflow.com/questions/53901235
复制相似问题