我在一个数据框中有: 客户ID, 客户的生日, 购买日期。
我需要一个函数来计算出生日期和购买日期之间的距离(以+/-天为单位)
例如,如果出生日期是1960年12月20日,购买日期是16/01/2019,我需要27岁,即生日后27天,或者购买日期是05/12/2018,我需要-15,这是生日前15天。
有什么建议吗?
答案 0 :(得分:0)
您可以将其分为两个。首先,为查找的生日日期创建一个新列。其次,减去这两个日期列以获取timedelata(并执行.dt.days以天为单位)。
答案 1 :(得分:0)
由于您需要停留在购买年份内,因此需要提取生日和购买日期的年份,可以使用.dt.dayofyear进行如下操作:
import pandas as pd
import numpy as np
df=pd.DataFrame({'customer_id':[1,2,3],
'birthday':pd.to_datetime(['20/12/1960','2/6/1980','6/1/1972']),
'purchase_date':pd.to_datetime(['1/1/2004','5/25/2018','3/4/2010'])})
df['days_away']=df['birthday'].dt.dayofyear - df['purchase_date'].dt.dayofyear
df