从DateTime开始/停止开始每小时计数的出现次数

时间:2019-05-07 03:29:13

标签: python datetime group-by count pivot

第一次寄出,希望这不会重复-如果是的话,请告诉我是否重复,因为过去几天我一直在寻找一种方法来做自己想要的事情。

因此,我有大量数据,其中有两列有趣的数据-“ 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是否在范围内,而不是范围的比例。

0 个答案:

没有答案