我有一个与此类似的数据框架:
时间戳事件计数
0 2014-07-23 04:28:23 1
1 2014-07-23 04:28:24 1
2 2014-07-23 04:28:25.999000 4
3 2014-07-23 04:28:27 1
4 2014-07-23 04:28:28.999000 2
5 2014-07-23 04:28:30 1
6 2014-07-23 04:29:31 7
7 2014-07-23 04:29:33 1
8 2014-07-23 04:29:34 1
9 2014-07-23 04:29:36 1
10 2014-07-23 04:40:37 2
11 2014-07-23 04:40:39 1
12 2014-07-23 04:40:40 1
13 2014-07-23 04:40:42 1
14 2014-07-23 04:40:43 1
15 2014-07-23 04:40:44.999000 4
16 2014-07-23 04:41:46 1
17 2014-07-23 04:41:47 1
18 2014-07-23 04:41:49 1
19 2014-07-23 04:41:50 1
20 2014-07-23 04:50:52 9
21 2014-07-23 04:50:53 4
22 2014-07-23 04:50:55 6
23 2014-07-27 01:12:13 1
我的最终目标是能够找到超过5分钟的差距。因此,从上面看,我会发现:
2014-07-23 04:29:36和2014-07-23 04:40:37
2014-07-23 04:41:50和2014-07-23 04:50:52
2014-07-23 04:50:55和2014-07-27 01:12:13
不需要确定小于5分钟的间隙。因此,以下内容不会被视为“差距”
2014-07-23 04:28:30和2014-07-23 04:29:31(仅61秒)
2014-07-23 04:40:37和2014-07-23 04:40:39(仅2秒)
2014-07-23 04:40:44.999000和2014-07-23 04:41:46(刚刚超过61秒)
我如何找到上面提到的差距?当我尝试这个答案中提到的解决方案时,似乎什么都没有改变。我使用了以下命令:
df.reindex(pd.date_范围(最小值(df['TIMESTAMP'])、最大值(df['TIMESTAMP'])、频率='5min')。fillna(0)
运行此命令后,dataframe看起来相同
IIUC只要数据类型已经是datetime64,您就可以使用diff,它将创建一个时间增量,然后调用属性dt.seconds:
[8]on
:
df['OVER 5 MINS']=(df['TIMESTAMP'].diff()).dt.seconds>;300
df
Output[8]:
时间戳事件计数超过5分钟
指数
0 2014-07-23 04:28:23.000 1假
1 2014-07-23 04:28:24.000 1假
2014-07-23 04:28:25.999 4假
3 2014-07-23 04:28:27.000 1假
4 2014-07-23 04:28:28.999 2假
5 2014-07-23 04:28:30.000 1假
6 2014-07-23 04:29:31.000 7假
7 2014-07-23 04:29:33.000 1假
8 2014-07-23 04:29:34.000 1假
9 2014-07-23 04:29:36.000 1假
10 2014-07-23 04:40:37.000 2对
11 2014-07-23 04:40:39.000 1假
12 2014-07-23 04:40:40.000 1假
13 2014-07-23 04:40:42.000 1假
14 2014-07-23 04:40:43.000 1假
15 2014-07-23 04:40:44.999 4假
16 2014-07-23 04:41:46.000 1假
17 2014-07-23 04:41:47.000 1假
18 2014-07-23 04:41:49.000 1假
19 2014-07-23 04:41:50.000 1假
20 2014-07-23 04:50:52.000 9对
21 2014-07-23 04:50:53.000 4假
22 2014-07-23 04:50:55.000 6假
23 2014-07-27 01:12:13.000 1对