Skip to content Skip to sidebar Skip to footer

Drop Row Based On Two Columns Conditions

I have dataframe looks like this: df Data1 Data2 Data3 A XX AA A YY AA B XX BB B YY CC C XX DD C YY DD D

Solution 1:

Using groupby + transform with nunique

yd=df[df.groupby(['Data1']).Data3.transform('nunique').gt(1)].copy()
Out[506]: 
  Data1 Data2 Data3
2     B    XX    BB
3     B    YY    CC
6     D    XX    EE
7     D    YY    FF

Solution 2:

You can also use a groupby with nunique, and a selection of rows:

>>>group = df.groupby('Data1')['Data3'].nunique()>>>df[df['Data1'].isin(group[group.gt(1)].index)]
  Data1 Data2 Data3
2     B    XX    BB
3     B    YY    CC
6     D    XX    EE
7     D    YY    FF
>>>

Post a Comment for "Drop Row Based On Two Columns Conditions"