擅长:python、mysql、java
<p>您可以首先创建一个掩码<code>ma</code>,并将最小值之前的所有行值设置为<code>False</code>。接下来,使用此掩码查找</em>最小值后每行<em>中的值,以达到最小值的4倍(由<code>True</code>表示):</p>
<pre><code>>>> ma = df.values.argmin(axis=1)[:,None] <= np.arange(df.shape[1])
>>> df.ge(4*df.min(axis=1), axis=0) & ma
TP1 TP2 TP3 TP4 TP5 TP6
gene1 False False False True True True
gene2 False False True True True True
</code></pre>
<p>然后可以使用<code>idxmax</code>从这个布尔数据帧(我称之为<code>df1</code>)检索第一个<code>True</code>值的标签:</p>
<pre><code>>>> df1.idxmax(axis=1)
gene1 TP4
gene2 TP3
dtype: object
</code></pre>