首页 > 解决方案 > 如何在数据框中获取定期时间间隔内的事件数

问题描述

假设我有如下所示的数据框。在数据框中,我们表示每秒发生的事件。

Time     events_occured
1           2
2           3
3           7
4           4
5           6
6           3
7           86
8           26
9           7
10          26
.           .
.           .
.           .
996         56
997         26
998         97 
999         58
1000        34

现在我需要每 5 秒获取事件的累积发生次数。如前 5 秒发生 22 个事件,从 6 到 10 秒发生 148 个事件,依此类推。

标签: pythonpandasdataframe

解决方案


像这样:

In [647]: df['cumulative'] = df.events_occured.groupby(df.index // 5).cumsum()

In [648]: df
Out[648]: 
   Time  events_occured  cumulative
0     1               2           2
1     2               3           5
2     3               7          12
3     4               4          16
4     5               6          22
5     6               3           3
6     7              86          89
7     8              26         115
8     9               7         122
9    10              26         148

推荐阅读