我有一个事务 Dataframe ,看起来像这样:
| customer_id | purchase_date | purchase_amt | ...
|-------------|---------------|--------------| ...
| 1 | 12-01-2023 | 150.00 | ...
| 2 | 11-24-2022 | 84.23 |..
我需要计算在12个月期间至少购买了一次的客户的12个月滚动总和。我被卡住了。我的想法是尝试这样的东西:
df2 = df.groupby('customer_id').apply(foo).to_frame().rename(columns:{0:'active customer'})
df = df.join(df2,on='customer_id')
df.groupby('active_customer').rolling(12).sum()
其中,函数foo
将标记客户在过去12个月内是否有交易。但我无法实现这样的功能。
有人能帮忙吗?
2条答案
按热度按时间bvn4nwqk1#
使用365D作为滚动要素的值如何
6l7fqoea2#
您可以将您的购买日期转换为每月期间,然后与客户交叉。最后将宽(dfw)输出转换为长(dfl):
宽输出:
长输出(删除0):