我有一个数据框,其中包含客户ID列表和购买日期 当回头客时,我需要一个新列,其中包含购买日期和以前的记录购买率之间的天数
Cust Data Days
123 2018-08-01
123 2018-09-01 31
124 2018-05-05
125 2017-01-25
125 2017-02-12 18
125 2017-06-14 122
有什么建议吗?
答案 0 :(得分:1)
您应该首先将'Data'
转换为日期时间格式。
df['Data'] = pd.to_datetime(df['Data'])
然后,获取天数之间的差额:
df[['Cust','Data']].groupby(['Cust']).diff()
Data
0 NaT
1 31 days
2 NaT
3 NaT
4 18 days
5 122 days
要删除NaT(日期时间的NaN),您可以将其删除(df.dropna()
)或填充(df.fillna(0)
)。