想要为列中的一系列0生成计数器



为了清楚地解释我的数据有温度值,当传感器不注册任何值时,它将给出连续的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

相关内容

  • 没有找到相关文章

最新更新