在Python中找到连续的零,基于时间



我有一个熊猫df1,有一个datetime列和一个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

转置,并将其转换成一个系列:

y = df.T.unstack()

然后,为了弥补熊猫中缺乏连续的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

这将产生连续值的数目

相关内容

  • 没有找到相关文章

最新更新