Предположим, у меня есть дата-кадр, как показано ниже:
year month message
0 2018 2 txt1
1 2017 4 txt2
2 2019 5 txt3
3 2017 5 txt5
4 2017 5 txt4
5 2020 4 txt3
6 2020 6 txt3
7 2020 6 txt3
8 2020 6 txt4
Я хочу выяснить три верхних числа сообщений в каждом году. Итак, я сгруппировал данные следующим образом:
df.groupby(['year','month']).count()
, в результате чего:
message
year month
2017 4 1
5 2
2018 2 1
2019 5 1
2020 4 1
6 3
Данные в порядке возрастания для обоих индексов. Но как найти результаты, как показано ниже, где данные отсортированы по годам (по возрастанию) и по количеству (по убыванию) для верхних значений n. Индекс «месяц» будет бесплатным.
message
year month
2017 5 2
4 1
2018 2 1
2019 5 1
2020 6 3
4 1