python - 从客户 ID 购买日期到 python 中 ID 的购买间隔天数
问题描述
我在 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]