You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas DataFrame中两个日期的差值从天数转换为年份

实现方法

  • 方法1:粗略年份计算(简便,可满足大部分场景)
    直接对得到的Timedelta列取天数后除以365.25(加入闰年修正),误差在1天以内:
raw['CALCULATED_AGE'] = (raw.COMMENCEMENT_DATE - raw.DATE_OF_BIRTH).dt.days / 365.25
# 如果需要取整数年份,末尾加.astype(int)即可

注:该方法适合不需要严格区分生日是否已过的场景

  • 方法2:精确实岁计算(无误差,符合实际年龄统计规则)
    通过判断生日是否已过调整年份差值,结果为整数实岁:
# 先计算初始年份差
raw['CALCULATED_AGE'] = raw.COMMENCEMENT_DATE.dt.year - raw.DATE_OF_BIRTH.dt.year
# 标记还未到当年生日的行
mask = (raw.COMMENCEMENT_DATE.dt.month < raw.DATE_OF_BIRTH.dt.month) | \
       ((raw.COMMENCEMENT_DATE.dt.month == raw.DATE_OF_BIRTH.dt.month) & \
        (raw.COMMENCEMENT_DATE.dt.day < raw.DATE_OF_BIRTH.dt.day))
# 未过生日的年份减1
raw.loc[mask, 'CALCULATED_AGE'] -= 1

内容的提问来源于stack exchange,提问作者Anrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:54:03