Pandas: как использовать GroupBy и сортировать внутри групп


Вы можете использовать следующий синтаксис для группировки строк в кадре данных pandas, а затем сортировать значения в группах:

df.sort_values(['var1',' var2'],ascending= False ). groupby('var1').head()

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: использование GroupBy и сортировка внутри групп в Pandas

Предположим, у нас есть следующий кадр данных pandas, который показывает продажи, совершенные в двух разных магазинах:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'store': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
 'sales': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print(df)

 store sales
0 B 12
1 B 25
2 A 8
3 A 14
4 B 10
5 B 20
6 A 30
7 A 30

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

#group by store and sort by sales values in descending order
df.sort_values(['store',' sales'],ascending= False ). groupby('store').head()

 store sales
1 B 25
5 B 20
0 B 12
4 B 10
6 A 30
7 A 30
3 A 14
2 A 8

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

#group by store and sort by sales values in ascending order
df.sort_values(['store',' sales']). groupby('store').head()

 store sales
2 A 8
3 A 14
6 A 30
7 A 30
4 B 10
0 B 12
5 B 20
1 B 25

Обратите внимание, что функция head() отображает только первые 5 значений по группам.

Чтобы отобразить первые n значений по группам, просто используйте вместо этого head(n) .

Примечание.Полную документацию по операции GroupBy в pandas можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Pandas: как рассчитать совокупную сумму по группе
Pandas: как подсчитать уникальные значения по группам
Pandas: как рассчитать корреляцию по группе

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.