根据时间在Python中查找连续的零

时间:2016-08-09 13:06:35

标签: python datetime pandas

我有一个带有df1列和datetime列的panda count。如果连续一小时有一串0,而且数据少于2分钟>在该小时内0(峰值容差'),它被认为是无效的。

datetime是5秒间隔,但并不总是一致的(即可以从6:00:00跳到14:00:00,跳过中间的所有时间)所以行之间的差异应该是5秒被认为是连续的一段时间。

我想添加一个新列flag,标记0表示无效,1表示有效。

示例数据

  time        count        flag
00:00:05      0           0
00:00:10      0           0
.....         all 0       0
01:00:05      0           0
01:00:10      33          1
01:00:15      19          1
.......       n>0         1
02:00:10      12          1

1 个答案:

答案 0 :(得分:0)

转换并将其转换为一系列:

y = df.T.unstack()

然后弥补pandas中缺少连续的groupby:

y * (y.groupby((y != y.shift()).cumsum()).cumcount() + 1)

OUT: 0     0
1     0
2     1
3     2
4     3
5     0
6     0
7     1
8     0
9     1
10    2

这将产生连续值的数量