панды сортируют значения groupby

#python #pandas #sorting #pandas-groupby

Вопрос:

У меня есть набор данных о футболе:

набор данных

Я отсортировал его по количеству матчей, сыгранных на каждой площадке:

 fb2 = fb.groupby(by=['Ground'])['Ground'].count()
print(fb2)
 

Выход:

 Ground
Aberdeen         11
Abu Dhabi        37
Adelaide         82
Ahmedabad        24
Albion            5
                 ..
Vijayawada        1
Visakhapatnam    11
Wellington       56
Whangarei         1
Worcester         3
Name: Ground, Length: 173, dtype: int64
 

Теперь я хочу отсортировать результаты в порядке убывания количества сыгранных матчей на каждой площадке.

Я очень новичок в python…любая помощь будет очень признательна!

Ответ №1:

Если вы используете именованную агрегацию, вы можете указать имя столбца для сортировки:

 fb2 = (
  fb
  .groupby('Ground', as_index=False)
  .agg(n_matches=('Ground', 'count'))
  .sort_values('n_matches, ascending=False)
)
 

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

1. Это именно то, что я искал, спасибо!!

Ответ №2:

Тип fb.groupby(by=['Ground'])['Ground'].count() серии is, вы можете отсортировать ее с помощью панд.Серия.значения сортировки()

 fb.groupby(by=['Ground'])['Ground'].count().sort_values(ascending=False))