这是我的数据
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.dtypes
, Date-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/