查找在五秒间隔内按时间顺序取消餐厅订单的频率间隔、顺序、频率、订单

2023-09-03 11:36:17 作者:别碰我!我有刺!

我的数据集如下所示:

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:51

Delta是从客户取消订单到他们下订单的时间。我的目标是找出在五秒间隔内按时间顺序取消餐厅订单的频率,以及模式、中位数和平均值。但是,我尝试了以下操作:

如何计算两个时间的间隔以及提取日期 时间

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的除商,因此12345秒(减去1后)均为组0。然后我们通过* 5 + 1将其还原为秒。value_counts进行精确的计数。reset_index为您返回数据帧。