Не могу извлечь признаки для обучающей и тестовой выборки

Ноутбук на Colab https://drive.google.com/open?id=1G-FVwAc-uIGuP2FzoY8YohrrBrAmyrb0 Датасет hour_online.csv. Вот начало этого файла:

       Time  Users
1/1/17 0:00  34002
1/1/17 1:00  37947
1/1/17 2:00  41517
1/1/17 3:00  44476
1/1/17 4:00  46234
1/1/17 5:00  48842 

По статье «Открытый курс машинного обучения. Тема 9. Анализ временных рядов с помощью Python» (на Хабр) пытаюсь создать признаки.

По своему тоже не получилось.

Есть БД с датами, которые нужно разбить на обучающие и тестовые выборки для обучения модели временного ряда. Для этого целевой признак нужно сдвинуть вперед. Подобный подход описан в статье habr.com Получаем dataset(как в статье)

dataset = pd.read_csv('hour_online.csv', index_col=['Time'], parse_dates=['Time'])

Далее ошибка на to_datetime():

data = pd.DataFrame(dataset)
data.columns = ["y"]

data.index = data.index.to_datetime()
data["hour"] = data.index.hour
data["weekday"] = data.index.weekday
data['is_weekend'] = data.weekday.isin([5,6])*1
data.head()

Почему ошибка

AttributeError: 'DatetimeIndex' object has no attribute 'to_datetime'

С учетом ответом о «deprecated index.to_datetime» получила ошибку

data = pd.DataFrame(dataset)
data.columns = ["y"]

data.index = data.to_datetime()
data["hour"] = data.hour
data["weekday"] = data.weekday
data['is_weekend'] = data.weekday.isin([5,6])*1
data.head()

AttributeError: 'DataFrame' object has no attribute 'to_datetime'


Ответы (2 шт):

Автор решения: passant

Начиная с версии Pandas 0.22.x находим в документации :

Index.to_datetime(dayfirst=False)
DEPRECATED: use pandas.to_datetime() instead.

А в Pandas 1.0.x Index.to_datetime отсутствует вовсе.

С учетом исправления, внесенного ТС в свой вопрос:

Еще раз, не

data.to_datetime()

а

pd.to_datetime(............)

Вот вам готовый работающий ПРИМЕР с результатом:

date_rng = pd.date_range(start='1/1/2018', end='1/08/2018', freq='H')
string_date_rng = [str(x) for x in date_rng]
timestamp_date_rng = pd.to_datetime(string_date_rng, 
                                    infer_datetime_format=True)
timestamp_date_rng
Out[6]: 
DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00', '2018-01-01 03:00:00',
               '2018-01-01 04:00:00', '2018-01-01 05:00:00',
               '2018-01-01 06:00:00', '2018-01-01 07:00:00',
               '2018-01-01 08:00:00', '2018-01-01 09:00:00',
               ...
               '2018-01-07 15:00:00', '2018-01-07 16:00:00',
               '2018-01-07 17:00:00', '2018-01-07 18:00:00',
               '2018-01-07 19:00:00', '2018-01-07 20:00:00',
               '2018-01-07 21:00:00', '2018-01-07 22:00:00',
               '2018-01-07 23:00:00', '2018-01-08 00:00:00'],
              dtype='datetime64[ns]', length=169, freq=None)
→ Ссылка
Автор решения: svil
dataset = pd.read_csv('/content/drive/My Drive/coursera/hour_online.csv')
data.columns = ["Time","y"]
data['Time'] = pd.to_datetime(data['Time'])
data["hour"] = data['Time'].dt.hour
data["weekday"] = data['Time'].dt.weekday
data['is_weekend'] = data.weekday.isin([5,6])*1
→ Ссылка