Я использую 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'
Спасибо за помощь