首页 > 解决方案 > 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 列上面的行中。

标签: pythonpandasdataframeloopsliterate-programming

解决方案


利用Series.duplicated

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

推荐阅读