У меня есть набор данных с днями рождения клиентов, и я хочу преобразовать эту переменную в возраст в годах, округленный до двух или трех знаков после запятой. Я выяснил, как преобразовать весь столбец во временную метку.
Одна проблема заключается в том, что я не знаю, сколько лет данным, но они были размещены на веб-сайте 4 апреля 2019 года, поэтому я 'используя этот день как «сегодня» для расчета дельты времени.
Когда я пытаюсь вычесть две даты, разница в днях.
Вот что у меня есть и TIA для любой помощи:
Данные начинаются с DOB в формате день-месяц-год, то есть: 30-12-1993
## Making sure all observations are in same format
training_df['DATE_OF_BIRTH'] = pd.to_datetime(training_df['DATE_OF_BIRTH'])
## Checking format of an individual DOB
training_df['DATE_OF_BIRTH'][0]
Out[121]:
Timestamp('1984-01-01 00:00:00')
## Setting "today" as 4-4-2019
data_time_reference=datetime(2019, 4, 4)
data_time_reference
Out[155]:
datetime.datetime(2019, 4, 4, 0, 0)
## Subtracting
data_time_reference - training_df['DATE_OF_BIRTH'][0]
Выходные данные
Timedelta('12877 days 00:00:00')
, когда мне нужно, чтобы это было 35,26 (что составляет 12 877, разделенное на 365,25)
данные находятся на Kaggle.com: https://www.kaggle.com/avikpaul4u/vehicle-loan-default-prediction