我在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
.....
如何在Python中使用DataFrame运算呢?谢谢
答案 0 :(得分:0)
将您的列转换为适当的日期时间,并按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]