为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用熊猫按组计算时间段内的频率

如何使用熊猫按组计算时间段内的频率

翻翻过去那场雪 2021-06-16 21:01:49
假设我已经对样本数据框进行了排序,如下所示CustomerID CallID       Date123          1          01/30/2017123          2          01/31/2017123          3          02/03/2017123          4          02/07/2017123          5          02/08/2017我想计算截至每个日期的过去 7 天内,我接到了多少个来自同一客户的电话。所需的输出数据帧将是CustomerID CallID       Date         NumOfCallsOneWeek123          1          01/30/2017    1123          2          01/31/2017    2123          3          02/03/2017    3123          4          02/07/2017    2123          5          02/08/2017    3请注意,截至 02/07/2017,2017 年 1 月 30 日的 2 个电话是在一周前收到的,因此不计算在内。我如何在熊猫中做到这一点?感谢您的帮助。
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

使用rolling与groupby


df['NumOfCallsOneWeek']=df.groupby('CustomerID').apply(lambda x : x.set_index('Date').rolling('7D').count())['CallID'].values

df

Out[951]: 

   CustomerID  CallID       Date  NumOfCallsOneWeek

0         123       1 2017-01-30                1.0

1         123       2 2017-01-31                2.0

2         123       3 2017-02-03                3.0

3         123       4 2017-02-07                2.0

4         123       5 2017-02-08                3.0


查看完整回答
反对 回复 2021-06-22
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号