擅长:python、mysql、java
<p>而不是你的循环,采取一种更为泛泛而谈的方法。
首先计算一个包含累积和的附加列
零售商的变化百分比:</p>
<pre><code>df['pct_cum'] = df.RETAILER_PCT_OF_CHANGE.cumsum()
</code></pre>
<p>对于您的数据,结果是:</p>
<pre><code> ORG RETAILER_PCT_OF_CHANGE pct_cum
0 KST 0.582561 0.582561
1 ISL 0.290904 0.873465
2 BOV 0.254456 1.127921
3 BRH 0.108240 1.236161
4 GNT 0.091363 1.327524
5 DSH 0.023441 1.350965
6 RDM -0.011967 1.338999
7 JBL -0.034889 1.304109
8 JBD -0.071883 1.232226
9 WEG -0.232227 0.999999
</code></pre>
<p>现在,要打印包含80%更改的行,
在超出限制的第一行结束,运行:</p>
<pre><code>df[df.pct_cum.shift(1).fillna(0) < 0.8]
</code></pre>
<p>结果加上累计总和为:</p>
<pre><code> ORG RETAILER_PCT_OF_CHANGE pct_cum
0 KST 0.582561 0.582561
1 ISL 0.290904 0.873465
</code></pre>