This is a follow up to this question
import pandas as pd
df = pd.DataFrame(
    {
        'a': ['A', 'A', 'B', 'B', 'B', 'C'],
        'b': ['A', 'A', 'B', 'B', 'B', 'C'],
        'hole': [True, True, True, False, False, True]
    }
)
print(df)
groups = df.groupby(['a', 'b'])  # "A", "B", "C"
agg_groups = groups.agg({'hole':lambda x: all(x)}) # "A": True, "B": False, "C": True
original_index_filtered = agg_groups.index[agg_groups['hole']]
original_filtered = df[df[['a', 'b']].isin(original_index_filtered)]
print(original_filtered)
now outputs
   a  b   hole
0  A  A   True
1  A  A   True
2  B  B   True
3  B  B  False
4  B  B  False
5  C  C   True
     a    b  hole
0  NaN  NaN   NaN
1  NaN  NaN   NaN
2  NaN  NaN   NaN
3  NaN  NaN   NaN
4  NaN  NaN   NaN
5  NaN  NaN   NaN
Seems like I am not doing it right when there is a multi index involved.
 
     
     
    