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)