【发布时间】:2021-08-14 10:55:32
【问题描述】:
我对 Python 和数据科学还很陌生。我有一个数据集,我将其导入数据框格式,其中每一行都是一个事件或活动,记录为信息系统日志的一部分。
- 事件由单个记录表示,因此具有单个时间戳(瞬时)。
- 活动由多个记录(和时间戳)表示,并且还具有“状态”属性(已安排、已开始、已暂停、已恢复、已完成、已取消) - 活动持续时间是从开始到完成/取消时测量的实际工作,忽略计划和空闲时间)
这是一个简化的例子:
| row # | name | state | type | timestamp |
|---|---|---|---|---|
| 1 | order_created | complete | event | 01/01/2021 17:34:00 |
| 2 | process_order | scheduled | activity | 01/01/2021 17:34:01 |
| 3 | process_order | started | activity | 01/01/2021 18:35:00 |
| 4 | process_order | suspended | activity | 01/01/2021 18:45:00 |
| 5 | process_order | resumed | activity | 02/01/2021 08:30:00 |
| 6 | process_order | completed | activity | 02/01/2021 09:05:00 |
| 7 | order_processed | completed | event | 02/01/2021 09:05:01 |
在此示例中,“process_order”活动的总执行时间是以下时间间隔的总和: 第 3-4 行(开始..暂停)+ 第 5-6 行(恢复..完成)= 10 + 35 = 45(分钟):
*事件 timstamp 在这里并不是真正需要的,但它们是数据集的一部分。
为每个活动(数据帧包含超过 200 万行)计算这些执行时间间隔(持续时间)的最有效方法是什么?
谢谢
【问题讨论】:
-
活动步骤总是这些吗?总是按这个顺序?是否保证在暂停之前不会发生简历?在您的 2M 行数据集中,是否有标识符来对订单进行分组?
-
这是典型的活动步骤顺序,虽然这是一个真实的数据集,但存在一些差异。活动可以在暂停后恢复(这在我的示例中显示)。是的,有订单标识符,但并非所有活动都必须与订单相关。
标签: python pandas data-science