以五秒为间隔按时间查找餐厅订单取消的频率
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 列
- 每 5 秒对 Delta 进行分组(最小 Delta 为 1 秒,因此看起来正确)
- 以及每 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 的商,因此 1
、2
、3
、4
、5
秒(减去 1
) 全部成为组0
。然后我们通过 * 5 + 1
将其还原为秒。 value_counts
准确计数。 reset_index
返回一个数据框。
我的数据集如下所示:
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 列
- 每 5 秒对 Delta 进行分组(最小 Delta 为 1 秒,因此看起来正确)
- 以及每 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 的商,因此 1
、2
、3
、4
、5
秒(减去 1
) 全部成为组0
。然后我们通过 * 5 + 1
将其还原为秒。 value_counts
准确计数。 reset_index
返回一个数据框。