Python 计算dataframe列和datetime对象之间的时间差

Python 计算dataframe列和datetime对象之间的时间差,python,pandas,dataframe,datetime,Python,Pandas,Dataframe,Datetime,我试图通过使用自定义函数(years\u-between)获得pandas数据框列和datetime对象之间的差异,以下是pandas数据框的外观: input_1['dataadmissao'].head(5) 0 2018-02-10 1 2009-08-23 2 2015-05-21 3 2016-12-17 4 2019-02-01 Name: dataadmissao, dtype: datetime64[ns] 这是我的代码: ################

我试图通过使用自定义函数(
years\u-between
)获得pandas数据框列和
datetime
对象之间的差异,以下是pandas数据框的外观:

input_1['dataadmissao'].head(5)

0   2018-02-10
1   2009-08-23
2   2015-05-21
3   2016-12-17
4   2019-02-01
Name: dataadmissao, dtype: datetime64[ns]
这是我的代码:

###################### function to return difference in years ####################

def years_between(start_year, end_year):
    start_year = datetime.strptime(start_year, "%d/%m/%Y")
    end_year = datetime.strptime(end_year, "%d/%m/%Y")
    return abs(end_year.year - start_year.year)

input_1['difference_in_years'] = np.vectorize(years_between(input_1['dataadmissao'], datetime.now()))
返回:

TypeError:strTime()参数1必须是str,而不是Series

如何调整函数以返回一个整数,该整数表示pandas dataframe列和
datetime.now()之间的年差。

使用:


只需从
datetime.datetime.now()中减去序列,除以一年的持续时间,然后转换为整数:

import numpy as np
((datetime.now() - input_1['dataadmissao'])/np.timedelta64(1, 'Y')).astype(int)

此行返回以天为单位的差值,如果以年为单位的差值为整数,那就太好了。请参阅更新。
import numpy as np
((datetime.now() - input_1['dataadmissao'])/np.timedelta64(1, 'Y')).astype(int)