Я думаю, что есть проблема с тем, как индекс даты / времени приводится в вашем фрейме данных, потому что следующие строки кода работают для меня:
import pandas as pd
from statsmodels.tsa.ar_model import AR
DF = pd.DataFrame({'code': ['2018-09-20 18:00:00', '2018-09-20 19:00:00', '2018-09-20 20:00:00', '2018-09-20 21:00:00', '2018-09-20 22:00:00'],
'test_col': [10, 20, 21, 17, 7]})
DF['code'] = pd.to_datetime(DF['code'])
DF = DF.set_index('code')
mod = AR(DF['test_col'])
res = mod.fit(maxlag= 2, ic= 'aic')
last_hour = DF.index[[len(DF)-1]]
pred = res.predict(start=last_hour[0],end = last_hour[0])
Проверка объекта last_hour дает
print(last_hour)
DatetimeIndex(['2018-09-20 22:00:00'], dtype='datetime64[ns]', name='code', freq=None)
Одна вещь, которую можно попробовать, это сбросить_индекс, затем преобразовать столбец в дату и время, а затем снова установить его в индекс.