python - 在我的数据框中添加一个计数器列,该计数器列根据温度值(在其他列中)递增

标签 python pandas

我想在 df 中为计数器创建一个新列,当温度值从零变为非零时,该计数器就会递增。

我正在附加用于逻辑的循环。该值位于计数器变量中,但我希望它位于下表中所示的列中。

prev_temp, counter, n= -300, 0,0

for index, row in df.iterrows():
    if row.Tempo!=0 and prev_temp==0:
        counter+=1
        n+=1
        prev_temp=rows.Tempo
    elif row.Tempo==0 and prev_temp!= 0:
        prev_temp=rows.Tempo
        
<表类=“s-表”> <标题> 没有。 节奏 计数 <正文> 1 80.0 1 2 81.6 1 3 0.00 1 4 0.00 1 5 0.00 1 6 81.6 2 7 80.0 2 8 83.7 2 9 0.00 2 10 0.00 2 11 0.00 2 12 81.6 3

此表是预期的输出!^

最佳答案

使用带有 shiftcumsum 的 bool 值作为递增数。

s = df['Tempo '].shift().eq(0) & df['Tempo '].gt(0)

df['counter'] = s.cumsum() + 1

  No.   Tempo   Count  counter
0      1    80.0      1        1
1      2    81.6      1        1
2      3     0.0      1        1
3      4     0.0      1        1
4      5     0.0      1        1
5      6    81.6      2        2
6      7    80.0      2        2
7      8    83.7      2        2
8      9     0.0      2        2
9     10     0.0      2        2
10    11     0.0      2        2
11    12    81.6      3        3

print(s)

0     False
1     False
2     False
3     False
4     False
5      True # increment here.
6     False
7     False
8     False
9     False
10    False
11     True # increment here. 

关于python - 在我的数据框中添加一个计数器列,该计数器列根据温度值(在其他列中)递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65765710/

相关文章:

python - pandas v0.17.1 无法与 py2exe 一起使用

python - pandas DataFrame 中行的有效成对比较

python - Python Numpy 数组中的 double 元素

python - rpy2 不会将 "_"转换为 "."

python - 第 0 行 "good movies"的输出是如何计算的?

python - 预期的二维数组,得到的是一维数组

python - str.contains 函数 AND 不包含

python - 无法在 Python API 中为新的 Google Cloud Platform 项目启用计费

python - 控制python代码在不同的核心上运行

Python Pandas 创建一长串数据框以进行连接