所以我试图用DOB计算现在的日期与“年龄”列之间的差值。
我的代码是
then()
但是我已经以天为单位了
df = df.rename(columns={'dob Y':'Year','dob M':'Month','dob D':'Day'})
df = df.head(13)
import datetime
#df['DOB'] = pd.to_datetime(df[['Day','Month','Year']])
df['Age'] = (datetime.datetime.now()-pd.to_datetime(df[['Day','Month','Year']]))
df['Age']
# [i.days for i in df['Age']]
我尝试除以365.25,但给出的单位仍然是天(如下所示)
0 3381 days 01:44:57.149175
1 3513 days 01:44:57.149175
2 3132 days 01:44:57.149175
3 3740 days 01:44:57.149175
4 4551 days 01:44:57.149175
5 3205 days 01:44:57.149175
6 3814 days 01:44:57.149175
7 5820 days 01:44:57.149175
8 4533 days 01:44:57.149175
9 2445 days 01:44:57.149175
10 2665 days 01:44:57.149175
11 5528 days 01:44:57.149175
12 3707 days 01:44:57.149175
Name: Age, dtype: timedelta64[ns]
我正在尝试将年龄四舍五入到小数点后两位。例子12.96年
答案 0 :(得分:1)
由于this post中所述的问题,由于年份长度的变化,无法从几天中获得确切的年份。
如果要使用365.25(或链接文章建议的365.2425)作为一年中的天数,则可以执行以下操作:
df['Age'] = pd.to_numeric((datetime.datetime.now()-pd.to_datetime(df[['Day','Month','Year']])).days / 365.2425)
包括int()强制转换,这样我们就不会得到长整数。