擅长:python、mysql、java
<p>如果数据中的所有<code>0</code>行都可用的一般解决方案-首先使用<code>cummsum</code>求和,然后测试每行的任何<code>True</code>:</p>
<pre><code>df1 = df[(df[['a', 'b', 'c']] != 0).cumsum().any(1)]
print (df1)
a b c
2 1 0 0
3 0 0 0
4 2 3 5
5 4 5 6
6 0 0 0
7 1 1 1
</code></pre>
<p>如果数据中至少有一个非<code>0</code>行,则解决方案-使用<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.idxmax.html" rel="nofollow noreferrer">^{<cd6>}</a>获取非<code>0</code>行的第一个值:</p>
<pre><code>df1 = df.iloc[(df[['a', 'b', 'c']] != 0).any(axis=1).idxmax():]
print (df1)
a b c
2 1 0 0
3 0 0 0
4 2 3 5
5 4 5 6
6 0 0 0
7 1 1 1
</code></pre>