Как группировать строки фрейма данных без использования функции groupby()?

#pandas #dataframe #pandas-groupby

#pandas #фрейм данных #pandas-groupby

Вопрос:

У меня есть фрейм данных с информацией о студенте, потоке и процентах.Я хочу отобразить запись студента с наибольшим процентом каждого потока без использования функции groupby в фрейме данных.

     name class section  marks roll grade

 damon     4       s   44.0    5   NaN

mehreen     4       s   85.0    4     B

  sara     4       a   96.0    5     A

 derya     5       s   49.0    a   NaN
 

Ответ №1:

Мне непонятно, почему вы не хотите использовать groupby. Однако, если ваша цель состоит в том, чтобы увидеть, какие учащиеся имеют самые высокие оценки в каждом потоке (я предполагаю, что section = stream , но если это что-то другое, это будет работать так же), тогда вы можете сделать это:

      name  class section  marks roll grade
0    damon      4       s   44.0    5   NaN
1  mehreen      4       s   85.0    4     B
2     sara      4       a   96.0    5     A
3    derya      5       s   49.0    a   NaN
 

и

 df2= df.sort_values(['marks','section'], ascending=False)
 

что дает вам

       name  class section  marks roll grade
2     sara      4       a   96.0    5     A
1  mehreen      4       s   85.0    4     B
3    derya      5       s   49.0    a   NaN
0    damon      4       s   44.0    5   NaN
 

У вас было два потока a и s, так что 2 верхние строки — это только учащиеся с наивысшей оценкой в каждом потоке.