SARIMAX predicted_mean 输出
SARIMAX predicted_mean output
我正在使用 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)
pred_uc.predicted_mean
是一个 pandas 系列对象,与索引相关联(例如日期索引)。
您可以将其转换为 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.299168
经过一些阅读,我最终找到了最适合的解决方案,因为这是迭代并每次都为结果创建一个新列。
compiled_df[column_2] = forecast[0]
compiled_df.index.name = 'TIME'
感谢您的帮助
我正在使用 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)
pred_uc.predicted_mean
是一个 pandas 系列对象,与索引相关联(例如日期索引)。
您可以将其转换为 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.299168
经过一些阅读,我最终找到了最适合的解决方案,因为这是迭代并每次都为结果创建一个新列。
compiled_df[column_2] = forecast[0]
compiled_df.index.name = 'TIME'
感谢您的帮助