Ajuste del modelo ARMA a series de tiempo indexadas por tiempo en python

Estoy tratando de ajustar un modelo ARMA a una serie de tiempo almacenada en un dataframe de pandas. El dataframe tiene una columna de valores de tipo numpy.float64 llamado “val” y un índice de marcas de tiempo de pandas. Las marcas de tiempo están en el formato “Año-Mes-Día Hora: Minuto: Segundo”. Entiendo que el siguiente código:

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

me da el mensaje de error:

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

porque no he formateado las marcas de tiempo correctamente. ¿Cómo puedo indexar mi dataframe para que el método ARMA lo acepte y conserve mi información de fecha y hora?

Creo que necesitas convertir el index a DatetimeIndex :

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

Muestra:

 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