<p>在dataframe的主体中包含所有相关数据是非常重要的,从这个意义上说,<code>melt()</code>函数是组织数据的重要盟友</p>
<pre><code>df_melted = pd.melt(pvalues, var_name="group", value_name="pvalues")
df_melted['foldchanges'] = pd.melt(foldchanges, var_name="group", value_name="foldchanges")['foldchanges']
df_melted['gene'] = pd.melt(names, var_name="group", value_name="gene")['gene']
</code></pre>
<p>现在,您可以简单地进行一些基本分组,以获得具有最小<code>pvalues</code>的索引</p>
<pre><code>min_idx = df_melted.groupby(by=["gene"])["pvalues"].idxmin()
out_df = df_melted.iloc[min_idx]
</code></pre>
<p>使用某些格式以获得所需格式的输出</p>
<pre><code>out_df = out_df.set_index('gene').rename_axis(None)[['pvalues', 'foldchanges', 'group']]
</code></pre>
<p>你可以走了</p>
<pre><code> pvalues foldchanges group
Apoe 0.004237 66.676672 g0
App 0.001434 82.099323 g2
Fxyd3 0.000710 20.887676 g2
Hspg2 0.004376 21.038256 g2
Krt15 0.006121 28.280696 g0
Lgr5 0.004562 97.676109 g0
Ltbp3 0.000202 65.310833 g0
Serpinh1 0.005218 83.794491 g0
Slc6a6 0.001183 19.658236 g0
Tpm1 0.000188 73.926358 g2
</code></pre>