我有一个数据帧,它有出生日期变量,我需要使用python根据给定时间段的出生日期变量计算年龄。请建议
示例
DOB AGE TIME PERIOD
31-12-1990 28 01-02-2017
01-01-1987 32 01-02-2017
12-07-1992 26 01-02-2017
我需要AGE列中所有行的值。
为什么不pandas
:
import pandas as pd
df=pd.read_csv(filename)
df['DOB']=pd.to_datetime(df['DOB'])
df['TIME PERIOD']=pd.to_datetime(df['TIME PERIOD'])
df.insert(1,'AGE',(df['TIME PERIOD']-df['DOB']).astype('<m8[Y]').astype(int))
print(df)
输出:
DOB AGE TIME_PERIOD
0 1990-12-31 26 2017-01-02
1 1987-01-01 30 2017-01-02
2 1992-12-07 24 2017-01-02
但你会想为什么我的代码中的年龄不正确,但实际上,如果你仔细想想,我的代码是对的,所以这也是一个修正。