我有以下数据框,其中有基于“原因”列的重复行。
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 中是否有一种有效的方法可以做到这一点。任何线索将不胜感激。
答案 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 -