如何用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
相关产品推荐
相关产品推荐

