第一次寄出,希望这不会重复-如果是的话,请告诉我是否重复,因为过去几天我一直在寻找一种方法来做自己想要的事情。
因此,我有大量数据,其中有两列有趣的数据-“ session_start”和“ session_end”:
session_start session_end group
0 2018-01-03 00:00:00 2018-01-03 00:00:14 1
1 2018-01-03 00:00:00 2018-01-03 00:26:58 2
2 2018-01-03 00:00:00 2018-01-03 00:00:12 1
...
16 2018-01-03 00:00:00 2018-01-03 00:46:07 6
17 2018-01-03 00:00:00 2018-01-03 00:00:18 2
18 2018-01-03 00:00:00 2018-01-03 00:00:08 4
19 2018-01-03 00:00:00 2018-01-03 00:00:06 2
我想做的是将其从起止数据集“转换”为计算每小时(或半小时)的出现次数,并获得小时(或半小时)的一部分存在。例如,在上面的第1行中,对于12:00 am-1:00am,00:00:00-00:26:58将计为0.449。一行是05:32:45-07:12:33将是5:00 am-6:00am的一部分,全部6:00 am-7:00am和7:00 am-8:00am的一部分。一年中的365天,每小时,每天,每天都会进行汇总,并按几个变量进行分组,并具有如下所示的输出:
session_time_hr grp1_ct grp2_ct ...
2018-01-01 00:00 45.6 42
2018-01-01 01:00 52 132
2018-01-01 02:00 33 1
...
到目前为止,我只看到它仅基于日期范围完成,即使那样,逻辑充其量也是模糊的。
我看到了这篇文章,我在想同样的逻辑,但严格地在Python中:https://powerpivotpro.com/2013/04/counting-active-rows-in-a-time-period-guest-post-from-chris-campbell/
我也在查看datetimerange库(https://pypi.org/project/DateTimeRange/),但似乎仅给出true / false表示datetime是否在范围内,而不是范围的比例。