mask = df.groupby(level=0).agg('idxmax')
df_count = df.loc[mask['no']]
df_count = df_count.reset_index()
print('\nOutput\n{}'.format(df_count))
Pandas, groupby and finding maximum in groups, returning value and count