Python Конвертировать datetime в int для модели обучения - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь преобразовать [timedelta64 [ns]] dtype в int, так как хочу начать обучение модели, но постоянно получаю следующую ошибку: TypeError: не могу ввести timedelta из [timedelta64 [ns]] в [float64]

Мне нужно преобразовать его в число dtype перед тренировкой, правильно?

edit: у меня есть набор данных, и предиктором Y является тип данных [timedelta64 [ns]], где он предсказывает, сколько число дней, в которые указанная дневная смена записей составляла:

X столбцов (все столбцы были преобразованы в числа с помощью одного горячего кодировщика, поскольку некоторые из них были категоричными) Роль Тип Значение ставки по фазе

Y столбец Смещение даты 20 дней 15 дни 10 дней

Так что мне нужно преобразовать столбец Y в int перед тренировкой модели? Если да, то как?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Вы можете разделить timedelta, например:

df['timedelta_col'] = df['timedelta_col'] / pd.to_timedelta('1D')
0 голосов
/ 27 апреля 2020

Вы можете преобразовать timedelta в float64, преобразовав сначала int следующим образом:

df['new'] = df.timedelta_column.astype('int').astype('float64')

Если конечной целью является получение количества дней:

df['new'] = df.timedelta_column.dt.days

РЕДАКТИРОВАТЬ : на основе комментариев, если вы хотите использовать значение float64, а затем вернуть его к timedelta для интерпретации:

df['new_float'] = df.timedelta_column.astype('int').astype('float64')
df['new_timedelta'] = pd.to_timedelta(df['new_float'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...