从按 ID 的客户购买日期到按 ID 的购买间隔天数 python

From customer purchases dates by ID to purchase interval in days by ID in python

我在 Python 中有一个数据框包含客户购买记录:

CUST_ID    CUST_PURCHASE_DATE
0001       20140204
0001       20150102
0002       20150411
0002       20160201
0002       20160302
.....

我希望获得:

CUST_ID    CUST_PURCHASE_DATE    CUST_PURCHASE_INTERVALS
0001       20140204              0
0001       20150102              331
0002       20150411              0
0002       20160201              302
0002       20160302              30
.....

如何使用 DataFrame 操作在 Python 中执行此操作?谢谢

将您的列转换为正确的日期时间,按 CUST_ID 和 .diff() 分组,例如:

pd.to_datetime(df.CUST_PURCHASE_DATE, format='%Y%m%d').groupby(df.CUST_ID).diff().fillna(0)

给你:

0     0 days
1   332 days
2     0 days
3   296 days
4    30 days
Name: CUST_PURCHASE_DATE, dtype: timedelta64[ns]