df_logfile = pd.DataFrame({'host': ['this.com', 'this.com', 'this.com',
    'that.com', 'other.net', 'other.net', 'other.net'], 'service': ['mail',
    'mail', 'web', 'mail', 'mail', 'web', 'web']})
df = df_logfile.groupby(['host', 'service'])['service'].agg({'no': 'count'})
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 и поиск максимума в группах, возвращаемое значение и количество