我有一个包含两个日期时间列的以下 DataFrame:
start end
0 01.01.2018 00:47 01.01.2018 00:54
1 01.01.2018 00:52 01.01.2018 01:03
2 01.01.2018 00:55 01.01.2018 00:59
3 01.01.2018 00:57 01.01.2018 01:16
4 01.01.2018 01:00 01.01.2018 01:12
5 01.01.2018 01:07 01.01.2018 01:24
6 01.01.2018 01:33 01.01.2018 01:38
7 01.01.2018 01:34 01.01.2018 01:47
8 01.01.2018 01:37 01.01.2018 01:41
9 01.01.2018 01:38 01.01.2018 01:41
10 01.01.2018 01:39 01.01.2018 01:55
Run Code Online (Sandbox Code Playgroud)
我想计算在给定时间结束之前有多少个开始(间隔)同时处于活动状态(换句话说:每行与其余行重叠多少次)。
例如,从00:47到00:52只有一个是活动的,从00:52到00:54有两个,从00:54到00:55又只有一个,等等。
我尝试将列堆叠在一起,按日期排序,并通过迭代整个数据帧,给每个“开始”+1 来计数器,给每个“结束”-1。它可以工作,但在我的原始数据框架上,我有几百万行,迭代需要永远- 我需要找到一种更快的方法。
我原来的基本但不是很好的代码:
import pandas as pd
import numpy as …Run Code Online (Sandbox Code Playgroud)