Python Pandas: преобразование значения timedelta из вычитания двух дат в целочисленный тип данных (AttributeError)
У меня есть следующий вывод набора данных (показанный ниже), который был произведен следующим кодом:
df_EVENT5_5['dtin'] = pd.to_datetime(df_EVENT5_5['dtin'])
df_EVENT5_5['age'] = df_EVENT5_5['dtin'].apply(dt.datetime.date) - df_EVENT5_5['dtbuilt'].apply(dt.datetime.date)
id age
1 6252 days, 0:00:00
2 1800 days, 0:00:00
3 5873 days, 0:00:00
В приведенном выше наборе данных после запуска dtypes для фрейма данных возраст представляется объектом.
Я хочу преобразовать столбец age в целочисленный тип данных со значением только дней. Ниже мой желаемый результат:
id age
1 6252
2 1800
3 5873
Я попробовал следующий код:
df_EVENT5_5['age_no_days'] = df_EVENT5_5['age'].dt.total_seconds()/ (24 * 60 * 60)
Ниже приведена ошибка:
AttributeError: может использовать только метод доступа.dt со значениями типа datetime
1 ответ
Тот факт, что вы получаете столбец объекта, подсказывает мне, что есть некоторые значения, которые нельзя интерпретировать как правильные временные интервалы. Если это так, я бы использовал pd.to_timedelta
с аргументом errors='coerce'
затем позвоните dt.days
:
df['age'] = pd.to_timedelta(df['age'],errors='coerce').dt.days
>>> df
id age
0 1 6252
1 2 1800
2 3 5873