根据 Pandas 中的条件过滤重复行

时间:2021-04-13 14:44:30

标签: pandas duplicates

我有以下数据框,其中有基于“原因”列的重复行。

No   Reason  
123  -
123  -
345  Bad Service
345  -
546  Bad Service
546  Poor feedback

我根据

对这些行进行了子集化
df_duplicates = df[df['No'].duplicated() == True]

我正在尝试遍历上述行的子集,并仅在相应重复行的“原因”都丢失或任何一个丢失时才对其进行过滤。

结果是

No   Reason  
123  -
123  -
345  Bad Service
345  -

我正在尝试遍历它,然后每对进行一次。不确定在 Pandas 中是否有一种有效的方法可以做到这一点。任何线索将不胜感激。

1 个答案:

答案 0 :(得分:2)

<块引用>

仅当相应重复行的“原因”都缺失或任何一个缺失时才过滤它们。

你可以这样做:

df[df['Reason'].eq('-').groupby(df['No']).transform('any')]
#or df[df['Reason'].isna().groupby(df['No']).transform('any')]

    No       Reason
0  123            -
1  123            -
2  345  Bad Service
3  345            -