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

如何通过先比较第三列值去除DataFrame中两列的重复项?

按指定列去重,保留目标列值最小的行

针对你的需求,这里有两种简洁高效的实现方式,都能处理多组重复项的场景:

方法一:分组取最小索引筛选

先通过分组找到每组中column_3值最小的行的索引,再提取对应行:

import pandas as pd

# 示例数据
a = [{'column_1': 'A', 'column_2': 'B', 'column_3': 20.14}, {'column_1': 'A', 'column_2': 'B', 'column_3': 20.35}]
df = pd.DataFrame(a)

# 获取每组中column_3最小的行索引
min_row_indices = df.groupby(['column_1', 'column_2'])['column_3'].idxmin()
# 筛选结果并重置索引
result_df = df.loc[min_row_indices].reset_index(drop=True)

方法二:排序后去重

先按column_3升序排序,让每组里值最小的行排在最前面,再用去重保留第一个条目:

result_df = df.sort_values('column_3') \
              .drop_duplicates(['column_1', 'column_2'], keep='first') \
              .reset_index(drop=True)

验证结果

两种方法运行后,都会得到符合预期的结果:

column_1 column_2  column_3
0        A        B     20.14

不管每组有多少重复条目,这两种方法都能准确保留column_3值最小的那一行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:10:35