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

标签 python pandas sorting dataframe

我有这样的数据框

        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

最佳答案

给定

>>> 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.applySeries.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

关于python - python 在数据框中每列中找到3个最大值并获取索引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53649374/

相关文章:

Python:如果不是 val,vs 如果 val 是 None

python - 与整数差距的季度数

python - 合并许多内存不足的 JSON 文件的最快方法

python - 根据数据框值获取列名和索引

Python:删除pandas数据框中的重复索引

python - DuckDB python API : query composition

python - 在 docker Alpine 中安装 pandas

php - 如何在 php 中对字符串数组进行排序? [这里的字符串是路径。例如/root/mandy/a.pdf, b.pdf & c.pdf

mysql - SQL 查询返回仅在 (x) 日期之前订购的帐号列表

在我的插入排序程序中找不到错误