为了清楚地解释我的数据有温度值,当传感器不注册任何值时,它将给出连续的0。我的间隔单位是毫秒这将每次给我一个0的字符串。当出现一串0时,我希望计数器从1增加到2再增加到3,以此类推。
实际上,我希望计数器列如下所示
<表类>
。
临时
数
tbody> <<tr> 1 80.0 0 2 81.6 0 3 0.00 0 4 0.00 0 5 0.00 0 6 81.6 1 7 80.0 0 8 83.7 0 9 0.00 0 10 0.00 0 11 0.00 0 12 81.6 1 13 81.6 0 14 80.0 0 15道明> 0 16道明> 0 17道明> 0 18道明> 0 19 81.6 1 表类>
您可以使用一个简单的布尔值来跟踪最后一个值是否为零,并在值不再为零时增加计数器。
我看到您使用了PANDAS df,但是由于您的问题说您将使用实时数据,所以我决定保持代码的模糊性,以便您可以将其应用于您自己的用例。您可以放置连接到传感器的逻辑,而不是使用for
循环遍历列表。当然,你也可以用任何你需要的东西来替换底部的print语句。
nums = [80.0, 81.6, 0.0, 0.0, 0.0, 81.6, 80.0, 83.7, 0.0, 0.0, 0.0, 81.6]
zeroCount = 1
isZero = False
for num in nums: #Can be whatever type of iteration you need
if num == 0:
isZero = True
if isZero:
if num != 0:
zeroCount += 1
isZero = False
print("%.1f %d" % (num, zeroCount))
运行该代码将产生您在问题中列出的输出:
80.0 1
81.6 1
0.0 1
0.0 1
0.0 1
81.6 2
80.0 2
83.7 2
0.0 2
0.0 2
0.0 2
81.6 3