【发布时间】:2018-12-17 15:05:30
【问题描述】:
我的事件如下所示:
|时间 |类型 ---------------------------------- 1 | 2016-08-26 20:57 |开始 2 | 2016-08-26 20:28 |事件 1 3 | 2016-08-26 21:00 |结尾 4 | 2016-08-26 21:27 |开始 5 | 2016-08-26 21:30 |事件 2 6 | 2016-08-26 21:32 |活动 3 7 | 2016-08-26 21:33 |结尾我想将上述数据分组到由start 和end 事件界定的“会话”中。因此,第 1 到第 3 行将在一个会话中,第 4 到第 7 行将在另一个会话中。请注意,start 和 end 也算作事件,所以我不想从最终结果中消除它们。
我想出的唯一办法是创建一个新列,在其中我为每一行分配一个“会话 ID”,然后在该列上简单地 groupby。我可以遍历事件并手动执行,但我想知道是否有矢量化方式来执行此操作。
This other answer 做了类似的事情。它将彼此相隔 6 小时内发生的事件分组。就我而言,我无法查看前一行来决定新事件是应该在新会话中还是当前会话中,所以我回到尝试避免循环。
感谢任何帮助。
【问题讨论】:
标签: pandas time-series