擅长:python、mysql、java
<p>有两种解决方案-计数重置为列<code>new</code>,另一种解决方案没有重置为<code>new1</code>:</p>
<pre><code>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
</code></pre>