以五秒为间隔按时间查找餐厅订单取消的频率

Finding the frequency of restaurant order cancellations by time in five second intervals

我的数据集如下所示:

order_id canceled_at accepted_at Delta
1 2021-07-02 23:30:26 2021-07-02 23:29:21 0 days 00:01:05
2 2021-09-17 20:35:44 2021-09-17 20:35:33 0 days 00:00:11
3 2021-05-21 11:47:28 2021-05-21 11:37:19 0 days 00:10:09
4 2021-06-18 7:34:06 2021-06-18 7:31:08 0 days 00:02:58
5 2021-05-16 15:54:34 2021-05-16 15:53:43 0 days 00:00:51

Delta 是从客户取消订单到他们下订单的时间。我的目标是以五秒为间隔的时间以及众数、中位数、均值来查找餐厅订单取消的频率。但是,我尝试了以下操作:

df_new.resample('5S', on='Delta').count().head(5)

我的成绩不理想:

Delta order_id canceled_at accepted_at Delta
0 days 00:00:01 656 656 656 656
0 days 00:00:06 1348 1348 1348 1348
0 days 00:00:11 3874 3874 3874 3874
0 days 00:00:16 3586 3586 3586 3586
0 days 00:00:21 2916 2916 2916 2916

我不确定发生了什么,我希望有人可以提供帮助?非常感谢!我认为伯爵正在填满一切。

理想情况下我只想要 2 列

  1. 每 5 秒对 Delta 进行分组(最小 Delta 为 1 秒,因此看起来正确)
  2. 以及每 5 秒间隔的取消计数。
5 Second Intervals Count of Cancellations
1 25
6 30
11 6
...
...
1 minute and 1 second 32
(((df['Delta'].dt.seconds - 1) // 5) * 5 + 1).value_counts().reset_index()

数学将每个 Delta 转换为 group-label。 // 取除 5 的商,因此 12345 秒(减去 1) 全部成为组0。然后我们通过 * 5 + 1 将其还原为秒。 value_counts 准确计数。 reset_index 返回一个数据框。