【发布时间】:2020-08-14 10:35:32
【问题描述】:
对于具有m 列的给定数据框(假设m=10),在每一行中,我试图找到顶部n 列值(假设n=2)。在为每一行找到这些顶部的n 值后,我想将剩余的列值,m - n 在行中分配为 0。
例如,从第一个表中提到的值的数据框开始,我尝试使用前面讨论的过滤选项创建第一个表的表示。如果超过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 |
有没有更简单的方法来实现这个。矢量化格式有助于显着减少大型数据帧的处理时间
谢谢
【问题讨论】: