Как отсортировать три первые строки groupby и agg (сумма и количество)? Python — Pandas

#python #pandas #pandas-groupby

#python #pandas #pandas-groupby

Вопрос:

У меня есть этот df :

                             sum     count
priority       alias        
120            CI0          7.13    903
               CI1          2.57    1
               CI2          2.27    1
               CI3          1.34    81
               CI4          2.21    1
               CI5          5.34    14
123            G1           2.95    3
               G2           4.67    12
               M1           5.21    2
126            M2           4.14    279
               A1           1.86    8
  

Я хотел бы извлечь три первые строки псевдонима каждого приоритета.

Результат должен быть :

                             sum     count
priority       alias        
120            CI0          7.13    903
               CI1          2.57    1
               CI2          2.27    1
123            G1           2.95    3
               G2           4.67    12
               M1           5.21    2
126            M2           4.14    279
               A1           1.86    8
  

Я пытался поместить head(3) в свой код, но это не работает, мой текущий код:

 df = df.groupby(['priority', 'alias'])['duration'].agg(['sum','count'])
  

Ответ №1:

Попробуйте groupby().head()

 df.groupby('priority').head(3)


     priority alias   sum  count
0        120   CI0  7.13    903
1        120   CI1  2.57      1
2        120   CI2  2.27      1
6        123    G1  2.95      3
7        123    G2  4.67     12
8        123    M1  5.21      2
9        126    M2  4.14    279
10       126    A1  1.86      8
  

Комментарии:

1. когда мы сделали самое сложное, и мы не можем сделать самое простое… Достаточно было сделать это отдельно. Спасибо