У меня есть фрейм данных input_df
с индексом TimeDate;индекс имеет месячную частоту, но некоторые месяцы отсутствуют, и я хотел бы использовать statsmodels ARIMA
для заполнения пробелов. Вот выдержка из кода:
input_df[ "trange" ] = input_df[ "tmax" ] - input_df[ "tmin" ]
valid_trange = input_df.loc[ input_df[ "trange" ].notnull(), "trange" ]
print( "valid_trange.head is:\n", valid_trange.head(), file = sys.stderr )
trange_model = ARIMA( valid_trange, ( 5, 1, 0 ) ).fit()
for index_date in input_df.index:
if np.isnan( input_df.loc[ index_date, "trange" ] ):
predicted_trange = trange_model.predict( start = index_date, end = index_date, typ = "levels" )
Вот то, что производит оператор print
, который показывает некоторые пробелы:
valid_trange.head is:
1908-01-01 6.4
1908-02-01 5.4
1908-03-01 5.9
1908-06-01 9.0
1908-08-01 7.8
Name: trange, dtype: float64
Проблема с predict
утверждение, которое приводит к следующей ошибке:
KeyError: 'only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices'
Я пробовал другие подходы для указания даты, для которой я хочу предсказать - использование числовых номеров строк вместо дат, использование аргумента exog=
для прогнозированияи т. д. - но все выдают ошибки.