我的数据集如下所示:
Order_id 已取消时间 Accept_at 增量 1 2021-07-02 23:30:26 2021-07-02 23:29:21 0天00:01:05 2 2021-09-17 20:35:44 2021-09-17 20:35:33 0天00:00:11 3 2021-05-21 11:47:28 2021-05-21 11:37:19 0天00:10:09 4 2021-06-18 7:34:06 2021-06-18 7:31:08 0天00:02:58 5 2021-05-16 15:54:34 2021-05-16 15:53:43 0天00:00:51Delta是从客户取消订单到他们下订单的时间。我的目标是找出在五秒间隔内按时间顺序取消餐厅订单的频率,以及模式、中位数和平均值。但是,我尝试了以下操作:
df_new.resample('5S', on='Delta').count().head(5)
我的成绩不理想:
增量 Order_id 已取消时间 Accept_at 增量 0天00:00:01 656 656 656 656 0天00:00:06 1348 1348 1348 1348 0天00:00:11 3874 3874 3874 3874 0天00:00:16 3586 3586 3586 3586 0天00:00:21 2916 2916 2916 2916我不确定发生了什么事,我希望也许有人能帮忙?提前谢谢你了!我认为计数填满了所有的东西。
理想情况下,我只需要2列
每隔5秒对增量进行分组(最小增量为1秒,以便正确显示) 和每5秒间隔的取消计数。 5秒间隔 取消计数 1 25 6 30 11 6 ... ... 1分1秒 32(((df['Delta'].dt.seconds - 1) // 5) * 5 + 1).value_counts().reset_index()
数学运算将每个Delta
转换为组标签。//
取5的除商,因此1
、2
、3
、4
、5
秒(减去1
后)均为组0
。然后我们通过* 5 + 1
将其还原为秒。value_counts
进行精确的计数。reset_index
为您返回数据帧。