Как выбрать верхний n ряд из каждой группы после группировки в пандах? - PullRequest
0 голосов
/ 18 мая 2018

У меня есть фрейм данных pandas со следующей формой

 open_year, open_month, type, col1, col2, ....

Я бы хотел найти верхний тип в каждом (год, месяц), поэтому сначала я нахожу количество каждого типа в каждом (год,месяц)

freq_df = df.groupby(['open_year','open_month','type']).size().reset_index()
freq_df.columns = ['open_year','open_month','type','count']

Затем я хочу найти верхний тип n на основе их частоты (например, количества) для каждого (year_month).Как я могу это сделать?

Я могу использовать nlargest, но мне не хватает типа

freq_df.groupby(['open_year','open_month'])['count'].nlargest(5)

, но мне не хватает столбца type

1 Ответ

0 голосов
/ 18 мая 2018

Я бы порекомендовал сначала отсортировать счет в порядке убывания, и вы можете позвонить GroupBy.head после -

(freq_df.sort_values('count', ascending=False)
        .groupby(['open_year','open_month'], sort=False).head(5)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...