Python 如何计算时间重叠的真实持续时间?蟒蛇熊猫

Python 如何计算时间重叠的真实持续时间?蟒蛇熊猫,python,pandas,datetime,timestamp,overlap,Python,Pandas,Datetime,Timestamp,Overlap,我想处理时间重叠,我设法确定了与group_overl列的重叠,以计算真实的持续时间。但我无法处理它们 这里举一个例子: begin end duration group_overl 2019-10-21 07:39:26.356716 2019-10-21 07:42:02.574268 156.218 1 2019-10-21 07:40:03.235327 2019-10-21

我想处理时间重叠,我设法确定了与group_overl列的重叠,以计算真实的持续时间。但我无法处理它们

这里举一个例子:

begin                       end                         duration    group_overl
2019-10-21 07:39:26.356716  2019-10-21 07:42:02.574268  156.218     1
2019-10-21 07:40:03.235327  2019-10-21 07:42:02.222821  118.987     1
2019-10-21 07:42:52.299657  2019-10-21 07:43:19.834114  27.534      2
2019-10-21 07:44:09.936458  2019-10-21 07:44:37.143862  27.207      3
2019-10-21 07:45:27.488518  2019-10-21 07:45:54.122312  26.634      4
2019-10-21 07:57:27.564887  2019-10-21 08:26:00.413448  1712.849    11
2019-10-21 07:58:06.209659  2019-10-21 08:27:00.413448  1734.204    11
...
2020-06-12 16:22:41.855968  2020-06-12 16:23:31.073432  49.22       6421
2020-06-12 16:51:06.793336  2020-06-15 09:51:46.179767  234039.39   6422 <---Modification 3 
2020-06-13 02:04:55.892438  2020-06-13 02:05:03.687360  58397       6422
2020-06-13 02:04:55.892443  2020-06-13 02:05:03.687365  0           6422
2020-06-13 02:04:55.892448  2020-06-13 02:05:03.687370  0           6422
2020-06-13 02:04:55.892452  2020-06-13 02:05:03.687374  0           6422
2020-06-13 02:04:56.217053  2020-06-13 02:05:03.979850  0           6422
2020-06-13 02:04:56.217058  2020-06-15 09:16:11.529059  25867       6422
2020-06-15 09:58:31.855886  2020-06-15 09:59:33.736478  61.88       6423

修改1可以,修改2可以,但只是在持续时间上,而不是在开始,修改3不起作用

以下是我目前的结果:

2019-10-21 07:39:26.356716  2019-10-21 07:42:02.574268  156.218     1

2019-10-21 07:42:52.299657  2019-10-21 07:43:19.834114  27.534      2
2019-10-21 07:44:09.936458  2019-10-21 07:44:37.143862  27.207      3
2019-10-21 07:45:27.488518  2019-10-21 07:45:54.122312  26.634      4
2019-10-21 07:57:27.564887  2019-10-21 08:26:00.413448  1712.849    11
2019-10-21 07:58:06.209659  2019-10-21 08:27:00.413448  60          11
...
2020-06-12 16:22:41.855968  2020-06-12 16:23:31.073432  49.22       6421
2020-06-12 16:51:06.793336  2020-06-15 09:51:46.179767  234039.39   6422
2020-06-13 02:04:55.892443  2020-06-13 02:05:03.687365  0           6422
2020-06-13 02:04:55.892448  2020-06-13 02:05:03.687370  0           6422
2020-06-13 02:04:55.892452  2020-06-13 02:05:03.687374  0           6422
2020-06-13 02:04:56.217053  2020-06-13 02:05:03.979850  0.29        6422
2020-06-13 02:04:56.217058  2020-06-15 09:16:11.529059  198667.55   6422
2020-06-15 09:58:31.855886  2020-06-15 09:59:33.736478  61.88       6423
我试过几种治疗方法,但我做不到,谢谢你的时间

                                    **UPDATE**
我想到了一个方法:对于每个组,取日期最小值和日期最大值,然后计算持续时间

2019-10-21 07:39:26.356716  2019-10-21 07:42:02.574268  156.218     1

2019-10-21 07:42:52.299657  2019-10-21 07:43:19.834114  27.534      2
2019-10-21 07:44:09.936458  2019-10-21 07:44:37.143862  27.207      3
2019-10-21 07:45:27.488518  2019-10-21 07:45:54.122312  26.634      4
2019-10-21 07:57:27.564887  2019-10-21 08:26:00.413448  1712.849    11
2019-10-21 07:58:06.209659  2019-10-21 08:27:00.413448  60          11
...
2020-06-12 16:22:41.855968  2020-06-12 16:23:31.073432  49.22       6421
2020-06-12 16:51:06.793336  2020-06-15 09:51:46.179767  234039.39   6422
2020-06-13 02:04:55.892443  2020-06-13 02:05:03.687365  0           6422
2020-06-13 02:04:55.892448  2020-06-13 02:05:03.687370  0           6422
2020-06-13 02:04:55.892452  2020-06-13 02:05:03.687374  0           6422
2020-06-13 02:04:56.217053  2020-06-13 02:05:03.979850  0.29        6422
2020-06-13 02:04:56.217058  2020-06-15 09:16:11.529059  198667.55   6422
2020-06-15 09:58:31.855886  2020-06-15 09:59:33.736478  61.88       6423
                                    **UPDATE**