擅长:python、mysql、java
<p>可以利用<code>.diff(-1)</code>直接获得条纹结束位置(50和55):</p>
<ul>
<li>首先,将<code>.diff(-1)</code>放入<code>.where()</code>以保留条纹结束元素,同时用0填充其他元素</李>
<li>其次,执行<code>cumsum()</code>,用<code>fill_value=0</code>将结果向前移动1,并将其添加到原始数据中</李>
</ul>
<p>代码:</p>
<pre><code>ds["a"] += ds["a"].where(ds["a"].diff(-1) > 0, other=0).cumsum().shift(fill_value=0)
</code></pre>
<p>结果:</p>
<pre><code>print(ds)
a
0 0
1 1
2 2
3 3
4 4
5 50
6 50
7 51
8 53
9 55
10 105
11 105
12 110
</code></pre>