从pandas数据框中的日期列获取年龄

i1icjdpr  于 2023-04-19  发布在  其他
关注(0)|答案(2)|浏览(154)

如何从pandas dataframe的日期列中提取人的年龄(当前日期格式:年月日时分)?
| ID|名称|出生日期|
| --------------|--------------|--------------|
| 0|拉吉|1966年9月17日01:37|
| 1|乔|1937年11月13日19:20|
| 二|马诺|1964年5月1日20:05|
| 三|日石|1937年11月13日0:00|

axr492tv

axr492tv1#

这是一种方法

import pandas as pd
import datetime

now = datetime.datetime.now()
df['dateofbirth'] = pd.to_datetime(df['dateofbirth'], format='%Y-%m-%d_%H:%M:%S')
df["Age"] = (now.date() - df['dateofbirth']).astype('<m8[Y]')
print(df)

输出:

ID   name         dateofbirth   Age
0   0    Raj 1966-09-17 01:37:00  51.0
1   1    Joe 1937-11-13 19:20:00  80.0
2   2   mano 1964-01-05 20:05:00  54.0
3   3  Rishi 1937-11-13 00:00:00  80.0
vlurs2pr

vlurs2pr2#

您可以从现在减去并转换为年份:

import pandas as pd

s = pd.to_datetime(['9/17/1966 01:37', '11/13/1937 19:20',
                    '1/5/1964 20:05', '11/13/1937 0:00'])

age = (pd.to_datetime('now') - pd.to_datetime(s)).astype('<m8[Y]')

print(age)

Int64Index([51, 80, 54, 80], dtype='int64')

相关问题