在熊猫元框架中,从日期到通用生日之间的天数

时间:2019-05-22 23:17:30

标签: pandas dataframe

我在一个数据框中有: 客户ID, 客户的生日, 购买日期。

我需要一个函数来计算出生日期和购买日期之间的距离(以+/-天为单位)

例如,如果出生日期是1960年12月20日,购买日期是16/01/2019,我需要27岁,即生日后27天,或者购买日期是05/12/2018,我需要-15,这是生日前15天。

有什么建议吗?

2 个答案:

答案 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