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

如何在Python的DataFrame中找出全列重复且出现超2次的行?

筛选多列重复且出现次数超2次的行组

给定如下结构的DataFrame:

import pandas as pd

data = {
    'id': [1,1,1,1,1,1,2,2,3,3,3,3],
    'Date': ['2022-01-01','2022-01-01','2022-01-01','2022-01-02','2022-01-02','2022-01-02','2022-01-01','2022-01-01','2022-01-01','2022-01-01','2022-01-01','2022-01-01']
}
df = pd.DataFrame(data)

需求是找出id和Date两列完全相同、且该组合出现次数超过2次的记录组,最终输出去重后的这些组合。

方法一:使用groupby.filter

通过分组筛选出符合次数要求的记录,再去重:

# 分组筛选次数>2的组,然后去重
result = df.groupby(['id', 'Date']).filter(lambda x: len(x) > 2).drop_duplicates()
print(result)

输出结果:

id        Date
0   1  2022-01-01
3   1  2022-01-02
8   3  2022-01-01

方法二:添加计数列后筛选

先通过transform计算每组的出现次数,再筛选符合条件的记录并去重:

# 添加每组计数列
df['group_count'] = df.groupby(['id', 'Date'])['id'].transform('count')
# 筛选次数>2的记录,保留目标列并去重
result = df[df['group_count'] > 2][['id', 'Date']].drop_duplicates()
print(result)

两种方法都能得到符合预期的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:36:27