#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 верхние строки — это только учащиеся с наивысшей оценкой в каждом потоке.