给定一个具有$m$列(假设$m=10$)的数据框,对于每一行,我想要找到前$n$个最大的列值(假设$n=2$)。在找到每行的这些前$n$个值之后,我希望将剩余的列值,共计$m-n$个,赋值为0。
例如,从第一个表中提到的数值数据框开始,我试图创建一个符合上述筛选条件的第一个表的表示形式。如果超过$n$列具有相同的值,则较小的列索引号会得到优先考虑。
例如,从第一个表中提到的数值数据框开始,我试图创建一个符合上述筛选条件的第一个表的表示形式。如果超过$n$列具有相同的值,则较小的列索引号会得到优先考虑。
| col_A | col_B | col_C | col_D | col_E |
|-------|-------|-------|-------|-------|
| 0.1 | 0.1 | 0.3 | 0.4 | 0.5 |
| 0.06 | 0.1 | 0.1 | 0.1 | 0.01 |
| 0.24 | 0.24 | 0.24 | 0.24 | 0.24 |
| 0.20 | 0.25 | 0.30 | 0.12 | 0.02 |
| col_A | col_B | col_C | col_D | col_E |
|-------|-------|-------|-------|-------|
| 0 | 0 | 0 | 0.4 | 0.5 |
| 0 | 0.1 | 0.1 | 0 | 0 |
| 0.24 | 0.24 | 0 | 0 | 0 |
| 0 | 0.25 | 0.3 | 0 | 0 |
有更简单的方法实现吗?向量化的格式可以显著减少在大型数据框上处理的时间
谢谢