繁体   English   中英

python迭代/循环两列并在第一次在a列或b列中找到值后删除整行

[英]python iterate / loop over two columns and drop entire row after value is first found in either column a or column 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 列上方的行中。

使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM