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

如何用Pandas筛选DataFrame重复行并保留唯一实例

Pandas筛选重复行并保留唯一实例

原始数据

import pandas as pd

df = pd.DataFrame({'col1': ["A", "B", "A", "C", "B", "B"],
                   'col2': ["B", "B", "B", "C", "A","A"],
                   'col3': ["C", "B", "C", "C", "A", "A"],
                   'col4': ["D", "B", "D", "C", "B", "B"]})

原始DataFrame输出:

col1 col2 col3 col4
0    A    B    C    D
1    B    B    B    B
2    A    B    C    D
3    C    C    C    C
4    B    A    A    B
5    B    A    A    B

需求说明

筛选出DataFrame中存在重复的行,并为每组重复行保留唯一实例(移除非重复行,同时每组重复行只留一个)。目标输出:

col1 col2 col3 col4
0    A    B    C    D
4    B    A    A    B

实现代码

# 标记所有重复行(包括首次出现的)
mask = df.duplicated(keep=False)
# 筛选重复行后去重,保留每组的第一个实例
result = df[mask].drop_duplicates(keep='first')

print(result)

代码解释

  • df.duplicated(keep=False):返回布尔数组,所有重复出现的行(含首次和后续重复行)标记为True,非重复行标记为False。
  • df[mask]:筛选出所有重复行(此时会包含重复的多份,比如行0和行2、行4和行5)。
  • drop_duplicates(keep='first'):对筛选后的结果去重,保留每组重复行的第一个实例,得到最终需求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:18:29