python - python迭代/循环两列并在第一次在a列或b列中找到值后删除整行
问题描述
我有一个包含 15 列的数据框,用于计算分数。两列 (a & b) 是我的自变量,其中 a & b 都有重复值。C 列代表正在计算的分数——我已经按 C 列降序对数据帧进行了排序。目标是保留 a 和 b 列的最高得分组合,并删除之后的任何列。
A栏 | B栏 | C栏 |
---|---|---|
5 | 10 | 1.5 |
5 | 12 | 1.4 |
10 | 12 | 1.0 |
7 | 14 | 0.9 |
7 | 9 | 0.8 |
12 | 6 | 0.7 |
14 | 4 | 0.6 |
在上面的示例中,我希望删除第二列、第三列、第五列、第六列和第七列。第六列和第七列将被删除,因为 12 和 14 已经包含在 b 列上面的行中。
解决方案
res = df[~(df["Column A"].duplicated() | df["Column B"].duplicated())]
print(res)
输出
Column A Column B Column C
0 5 10 1.5
3 7 14 0.9