首页 > 解决方案 > Pandas - 在多列中查找重复项并找到相应的输出

问题描述

我有一个如下的数据框

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_2  col_3
cust_a  prod_a  cat_a
cust_b  prod_b  cat_b
cust_c  prod_b  cat_c
cust_d  prod_a  cat_d
cust_e  prod_a  cat_a
cust_a  prod_b  cat_a

我正在尝试根据 和 中的值查找重复的col_1col_3

例如, cust_a 和 cat_a 出现两次,我正在尝试过滤它们。

预期输出

 col_1   col_2  col_3
cust_a  prod_a  cat_a
cust_a  prod_b  cat_a

我尝试了以下,但它仍然有重复:

df[df.duplicated(keep=False)]

标签: pythonpandas

解决方案


subset使用参数DataFrame.duplicated

df = df[df.duplicated(subset=['col_1','col_3'], keep=False)]
print(df)
    col_1   col_2  col_3
0  cust_a  prod_a  cat_a
5  cust_a  prod_b  cat_a

推荐阅读