g = df.groupby(['col1', 'col2'])
final_df = g.agg({'col3': 'size', 'col4': 'nunique'})
final_df.insert(1, 'result_col', g.col4.apply(lambda x: x.eq(3).sum()))
Как сгруппировать и подсчитать уникальность и подсчитать некоторое значение как агрегированное в одном столбце в пандах python?