擅长:python、mysql、java
<p>尝试使用<code>shift</code>然后<code>where</code>将所有非0屏蔽到<code>NaN</code>,然后执行<code>cumsum</code>,因为需要再次添加前一个填充值</p>
<pre><code>df.a = df.a.add(df.a.shift().where(df.a.eq(0)).cumsum().ffill(),fill_value=0)
Out[132]:
0 0.0
1 1.0
2 2.0
3 3.0
4 4.0
5 50.0
6 50.0
7 51.0
8 53.0
9 55.0
10 105.0
11 105.0
12 110.0
Name: a, dtype: float64
</code></pre>