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

如何基于col_1与col_3多列筛选Pandas DataFrame重复行?

解决基于指定列筛选重复行的问题

你遇到的问题是因为默认的duplicated()方法会检查整行所有列的重复情况,而你需要的是仅基于col_1和col_3两列的组合来判断重复。那两行的col_2值不同,所以整行不算重复,自然不会被筛选出来。

正确的解决方案

只需要在duplicated()中通过subset参数指定要检查的列即可,配合keep=False保留所有重复出现的行:

import pandas as pd

# 重现你的DataFrame
df = pd.DataFrame({
    'col_1':['cust_a','cust_b','cust_c','cust_d','cust_e','cust_a'], 
    'col_2':['prod_a','prod_b','prod_b','prod_a','prod_a','prod_b'], 
    'col_3':['cat_a','cat_b','cat_c','cat_d','cat_a','cat_a']
})

# 基于col_1和col_3筛选重复行
duplicate_rows = df[df.duplicated(subset=['col_1', 'col_3'], keep=False)]
print(duplicate_rows)

输出结果

col_1  col_2  col_3
0  cust_a  prod_a  cat_a
5  cust_a  prod_b  cat_a

关键参数解释

  • subset=['col_1', 'col_3']:告诉Pandas只根据这两列的值来判断是否重复,忽略其他列的差异。
  • keep=False:保留所有重复出现的行(如果设置为'first'会保留第一次出现的行,去掉后续重复;'last'则相反)。

这样就能精准筛选出你需要的cust_a和cat_a组合的所有重复行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:22:49