Рассчитать возраст в кадре данных Pandas - PullRequest
0 голосов
/ 16 мая 2019

У меня есть фрейм данных pandas, в котором есть столбец «dob» (дата рождения), я хочу вычислить возраст на основе сегодняшней даты

Я использовал модуль datetime для вызова сегодня и вычел 'добавьте поле сегодняшнего дня и разделите его на 365, чтобы получить возраст в годах.

Это довольно грубый подход, который я допускаю, я ищу подсказки, чтобы сделать это более элегантно.

# -*- coding: utf-8 -*-

import pandas as pd
from datetime import datetime
today = datetime.today()

df = pd.read_csv(pathtocsvfile, parse_dates=['dob'])

df['age'] = df['dob'].apply(lambda x: (today - x).days // 365)

Я считаю, что код работает как есть, но я не уверен, сколько високосных лет может повлиять на результат.

И я ищу элегантный способ сделать это также.

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Вы вводите неточность, настаивая на подсчете в годах.Ваша цель будет также достигнута возрастом в дни, которые у вас уже есть.Просто отбросьте целочисленное деление на 365.

0 голосов
/ 16 мая 2019

Я бы предложил это, если вы хотите возраст

df['age'] = df['dob'].apply(
               lambda x: today.year - x.year - 
               ((today.month, today.day) < (x.month, x.day)) 
               )

вместо того, чтобы брать дни и делить на 365, что не всегда точно и может привести к неверному результату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...