我有一个熊猫数据框,其中有一列“出生日期”(出生日期),我想根据今天的日期计算年龄

我使用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/

10-12 21:22