Я пытаюсь понять/использовать GroupBy в панд, чтобы получить максимальное количество в каждой группе, а затем возвращает строку с максимальным колPython Панды GroupBy Поведение
df = pd.DataFrame({'name':['alpha','beta','gamma','delta','epsilon'], 'year':[2000,2001,2000,2001,2000], 'count':[1,25,11,20,8]})
df
count name year
0 1 alpha 2000
1 25 beta 2001
2 11 gamma 2000
3 20 delta 2001
4 8 epsilon 2000
df.groupby('year').max()
count name
year
2000 11 gamma
2001 25 delta
Я группировка по году, но я d как выход выглядеть следующим образом:
count name
year
2000 11 gamma
2001 25 beta
Итак, я хотел бы, чтобы вернуть всю строку из каждой группы (по «год») на основе максимального числа. Мне также непонятно, почему 2001 год возвращает «дельта» в названии, а не «бета» (как и следовало ожидать).
Причина, по которой дается delta, заключается в том, что когда вы делаете '.max()' непосредственно на объекте groupby, он вычисляет max отдельно для каждого столбца. '' delta "' позже в алфавите и, следовательно, «больше, чем» '« бета ». – BrenBarn