Приведение модели 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 принимал его, сохраняя мою информацию о дате и времени?

Я думаю, вам нужно преобразовать 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>