Python 获取熊猫数据框中的“从日期开始的年龄”列(当前日期格式:MM/DD/YYYY HH:MM)

Python 获取熊猫数据框中的“从日期开始的年龄”列(当前日期格式:MM/DD/YYYY HH:MM),python,pandas,date,Python,Pandas,Date,如何在熊猫数据框(当前日期格式:MM/DD/YYYY HH:MM)中从日期列获取年龄。 年龄以年为单位 ID name dateofbirth 0 Raj 9/17/1966 01:37 1 Joe 11/13/1937 19:20 2 mano 1/5/1964 20:05 3 Rishi 11/13/1937 0:00 我刚接触熊猫,请建议可能的解决方案。您可以从现在开始减去并转换为年份: import pandas as pd s =

如何在熊猫数据框(当前日期格式:MM/DD/YYYY HH:MM)中从日期列获取年龄。 年龄以年为单位

ID  name     dateofbirth
0    Raj    9/17/1966 01:37
1    Joe   11/13/1937 19:20
2    mano    1/5/1964 20:05
3    Rishi  11/13/1937 0:00

我刚接触熊猫,请建议可能的解决方案。

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

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')
将熊猫作为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('这是一种方法

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)

这可以正常工作,如果日期的格式类似于“5/28/56 12:00 AM”,则其抛出错误:ValueError:时间数据“4/28/56 12:00 AM”与格式“%Y-%m-%d\uh:%m:%S”不匹配您可能需要标准化日期时间
   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