Приведение модели ARMA к временным рядам, индексированным по времени в python

Я пытаюсь подгонять модель ARMA к временному ряду, хранящемуся в кадре данных pandas. Dataframe имеет один столбец значений типа numpy.float64 с именем «val» и индекс временных меток pandas. Временные метки указаны в формате «Year-Month-Day Hour: Minute: Second». Я понимаю, что следующий код:

from statsmodels.tsa.arima_model import ARMA model = ARMA(df["val"], (1,0)) 

дает мне сообщение об ошибке:

 ValueError: Given a pandas object and the index does not contain dates 

потому что я не отформатировал временные метки правильно. Как я могу индексировать свой фреймворк так, чтобы метод ARMA принимал его, сохраняя мою информацию о дате и времени?

One Solution collect form web for “Приведение модели ARMA к временным рядам, индексированным по времени в python”

Я думаю, вам нужно преобразовать index в DatetimeIndex :

 df.index = pd.DatetimeIndex(df.index) 

Образец:

 import pandas as pd from statsmodels.tsa.arima_model import ARMA df=pd.DataFrame({"val": pd.Series([1.1,1.7,8.4 ], index=['2015-01-15 12:10:23','2015-02-15 12:10:23','2015-03-15 12:10:23'])}) print df val 2015-01-15 12:10:23 1.1 2015-02-15 12:10:23 1.7 2015-03-15 12:10:23 8.4 print df.index Index([u'2015-01-15 12:10:23',u'2015-02-15 12:10:23',u'2015-03-15 12:10:23'], dtype='object') df.index = pd.DatetimeIndex(df.index) print df.index DatetimeIndex(['2015-01-15 12:10:23', '2015-02-15 12:10:23', '2015-03-15 12:10:23'], dtype='datetime64[ns]', freq=None) model = ARMA(df["val"], (1,0)) print model <statsmodels.tsa.arima_model.ARMA object at 0x000000000D5247B8> 
  • Дублирование некоторых строк и изменение некоторых значений в пандах
  • Изменение определенных значений в нескольких столбцах панда DataFrame сразу
  • Pandas: Diff of two Dataframes
  • Как конкатенировать несколько pandas.DataFrames без использования в MemoryError
  • Самый быстрый способ создания dataframe типа get_dummies из столбца с несколькими строками
  • Заполните значения, добавив x к предыдущим рядам pandas
  • Объединение двух серий в пандах по их индексу
  • Pandas - группа по последовательным диапазонам
  • Python - лучший язык программирования в мире.