python 在数据框中每列中找到3个最大值并获取索引号

2024-01-09

我有这样的数据框

        A         B         C         D    
0  0.037949  0.021150  0.127416  0.040137  
1  0.025174  0.007935  0.011774  0.003491  
2  0.022339  0.019022  0.024849  0.018062  
3  0.017205  0.051902  0.033246  0.018605  
4  0.044075  0.044006  0.065896  0.021264

我想获取每列中 3 个最大值的索引值的数据框。所需输出

       A         B         C         D    
0      4         3         0         0
1      0         4         4         4
2      1         0         3         3

Given

>>> df
          A         B         C         D
0  0.037949  0.021150  0.127416  0.040137
1  0.025174  0.007935  0.011774  0.003491
2  0.022339  0.019022  0.024849  0.018062
3  0.017205  0.051902  0.033246  0.018605
4  0.044075  0.044006  0.065896  0.021264

您可以使用DataFrame.apply结合Series.nlargest:

>>> df.apply(lambda s: pd.Series(s.nlargest(3).index))
   A  B  C  D
0  4  3  0  0
1  0  4  4  4
2  1  0  3  3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 在数据框中每列中找到3个最大值并获取索引号 的相关文章

随机推荐