You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python遍历DataFrame两列删除重复值保留最高得分行实现方案

实现思路

因为你已经提前按Column C做了降序排序,只需要从上到下遍历所有行,维护一个已出现值的集合即可:

  1. 初始化空集合存储所有已经出现过的Column A和Column B的值
  2. 逐行检查当前行的Column A、Column B是否有值在集合中存在,只要有一个存在就跳过当前行
  3. 无论当前行是否保留,都把该行的Column A和Column B的值加入已出现集合(因为只要该值首次出现后,后续所有含该值的行都要删除)
  4. 最终保留的行就是符合要求的结果

完整代码实现

import pandas as pd

# 构造示例数据,实际使用时替换成自己的DataFrame即可
df = pd.DataFrame({
    'Column A': [5,5,10,7,7,12,14],
    'Column B': [10,12,12,14,9,6,4],
    'Column C': [1.5,1.4,1.0,0.9,0.8,0.7,0.6]
})

# 如果还没有按Column C降序排序,先执行下面这行
# df = df.sort_values('Column C', ascending=False).reset_index(drop=True)

seen = set()
keep_idx = []

for idx, row in df.iterrows():
    a_val = row['Column A']
    b_val = row['Column B']
    if a_val not in seen and b_val not in seen:
        keep_idx.append(idx)
    # 不管是否保留当前行,都把两个值加入已出现集合
    seen.add(a_val)
    seen.add(b_val)

# 筛选结果,会保留DataFrame所有原始列
result_df = df.loc[keep_idx].reset_index(drop=True)
print(result_df)

输出结果

Column A  Column B  Column C
0         5        10       1.5
1         7        14       0.9

内容的提问来源于stack exchange,提问作者mashit101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:15:03