Skip to main content
 首页 » 编程设计

python之在 pandas 数据框中保持大于阈值的值的运行计数

2025年05月04日21傻小

在下面的数据框中:

    va 
0   35 
1   12 
2   24 
3   25 
4   26 
5   19 
6   14 
7   22 
8   35 
9   35 
10  29 
11  13 
12  20 
13  10 
14  10 
15  23 
16  11 
17  30 
18  26 
19  32 
20  11 

我想对 va 列值超过 30 的行数进行连续计数。我正在考虑使用 value_counts 但似乎不行对

请您参考如下方法:

有 2 种解决方案 - 计数重置为 new 列,另一种解决方案未重置为 new1:

a = df['va'].gt(30) 
b = a.cumsum() 
df['new'] = b-b.mask(a).ffill().fillna(0).astype(int) 
df['new1'] = b.where(a, 0) 
print (df) 
    va  new  new1 
0   35    1     1 
1   12    0     0 
2   24    0     0 
3   25    0     0 
4   26    0     0 
5   19    0     0 
6   14    0     0 
7   22    0     0 
8   35    1     2 
9   35    2     3 
10  29    0     0 
11  13    0     0 
12  20    0     0 
13  10    0     0 
14  10    0     0 
15  23    0     0 
16  11    0     0 
17  30    0     0 
18  26    0     0 
19  32    1     4 
20  11    0     0