这是我的数据

Customer_id    Date-of-birth
1              1992-07-02
2              1991-07-03

这是我的代码
import datetime as dt
df['now'] = dt.datetime.now()
df['age'] = df['now'].dt.date - df['Date-of-birth']

这是结果
Customer_id    Date-of-birth     age
1              1992-07-02        xxxx days
2              1991-07-03        xxxx days

我想要的结果是
Customer_id    Date-of-birth     age
1              1992-07-02        26 years 22 days
2              1991-07-03        27 years 21 days

现在就让您通过 df.dtypesDate-of-birth 是一个对象,因为它基于下拉列表中的客户输入

我怎样才能做到这一点?我希望这个问题足够清楚

最佳答案

使用带有自定义函数的 this solution ,因为计算它并不容易,因为闰年​​:

from dateutil.relativedelta import relativedelta

def f(end):
    r = relativedelta(pd.to_datetime('now'), end)
    return '{} years {} days'.format(r.years, r.days)

df['age'] = df["Date-of-birth"].apply(f)
print (df)
   Customer_id Date-of-birth               age
0            1    1992-07-02  26 years 22 days
1            2    1991-07-03  27 years 21 days

关于python - 我如何获得 Pandas 的年龄和日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51491893/

10-12 17:00