我有一个熊猫数据框,其中有一列“出生日期”(出生日期),我想根据今天的日期计算年龄
我使用datetime模块来调用今天,并从今天减去'dob'字段,然后将其除以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)
我相信代码可以正常工作,但是我不确定多少leap年会影响结果。
我也在寻找一种优雅的方式来做到这一点。
最佳答案
如果您想要年龄,我建议您
df['age'] = df['dob'].apply(
lambda x: today.year - x.year -
((today.month, today.day) < (x.month, x.day))
)
而不是花几天时间并除以365,这并不总是准确的,并且可能导致错误的结果。
这反映了该主题,在这里也进行了讨论:Age from birthdate in python
关于python - 在 Pandas 数据框中计算年龄,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56170259/