我有一个框架,其中“类型”列中的某些值不正确:
| ID|类型|其他数据|
| --|--|--|
| ABC|十点| 56 |
| ABC|十点| 34 |
| ABC| 0.0| 78 |
| DEF| 20.0| 45 |
| DEF| 0.0| 23 |
| ZWS| 20.0| 99 |
| TYH|十点| 12 |
| TYH|十点| 63 |
| FCE| 0.0| 56 |
| FCE| 20.0| 78 |
| XSA|十点| 74 |
| 红色|0.0| 55 |
| QWA| 20.0| 74 |
我想遍历每个ID,并确定Type是否等于0.0,然后将其替换为同一ID具有0.0以外的值的行中的值。如果没有其他行的ID,并且类型列中的值为0.0,则将其更改为Nan或99,以便稍后删除。
结果将是:第3行的ABC更改为第5行的10.0 DEF更改为第9行的20.0 FCE更改为第12行的20.0 RED更改为Nan或99,因为未找到等效匹配。
解决这个问题的最佳方法是什么?
我尝试过构建字典和循环,但我总是在replace 0.0中卡住等价键的值。
1条答案
按热度按时间roejwanj1#
您可以使用布尔掩码隐藏等于0的行,然后按
Type
分组,并将最大值(NaN
以外的任何值)广播到所有行:字符串