我有一个数据框,其中包含客户进入商店的日期。我正在寻找一种方法,可以让我计算一个客户从当前访问日期(包括当前访问)到过去一个月内访问商店的次数。
因此,对于下面的最小数据集
Customer_ID Date_Visited (Year-Month-Day)
1 2020-07-10
2 2020-07-09
1 2020-01-01
2 2020-07-08
1 2020-07-08
3 2020-07-01
我正在寻找一个
Customer_ID Date_Visited visit_times
1 2020-07-10 2
2 2020-07-09 2
1 2020-01-01 1
2 2020-07-08 1
1 2020-07-08 1
3 2020-07-01 1
我已经能够使用涉及循环的解决方案,但对于大型 Dataframe 来说,这将是低效的。
我曾考虑尝试合并 Dataframe 的两个副本,并使用与从另一个 Dataframe 计算日期之间的发生次数(给定id值)类似的方法,但我不确定此方法是否是解决此问题的最佳方法
1条答案
按热度按时间toe950271#
你可以分组
Customer_ID
和年/月(使用pandas.Grouper
关于排序 Dataframe (pandas.DataFrame.sort_values
使用日期列作为key
)并应用cumcount
每个组(在python中,当计数从0开始时,需要添加1):输出: