Pandas: как использовать groupby() с size()
Вы можете использовать следующие методы с функциями groupby() и size() в pandas для подсчета количества вхождений в каждой группе:
Способ 1: подсчитать вхождения, сгруппированные по переменной
df. groupby (' var1 '). size ()
Способ 2. Подсчет вхождений, сгруппированных по нескольким переменным.
df. groupby ([' var1 ', ' var2 ']). size ()
Метод 3. Подсчет вхождений, сгруппированных по нескольким переменным и отсортированных по номеру.
df. groupby ([' var1 ', ' var2 ']). size (). sort_values (ascending= False )
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'], ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]}) #view DataFrame print (df) team position points 0 AG 15 1 AG 22 2 AF 24 3 AF 25 4 AF 20 5 BG 35 6 BG 34 7 BG 19 8 BG 14 9 BF 12
Пример 1: подсчет вхождений, сгруппированных по переменной
Следующий код показывает, как использовать функции groupby() и size() для подсчета вхождений значений в столбце команды :
#count occurrences of each value in team column
df. groupby (' team '). size ()
team
AT 5
B5
dtype: int64
Из результата мы видим, что значения A и B появляются в столбце команды 5 раз.
Пример 2. Подсчет вхождений, сгруппированных по нескольким переменным
Следующий код показывает, как использовать функции groupby() и size() для подсчета вхождений значений для каждой комбинации значений в столбцах команды и позиции :
#count occurrences of values for each combination of team and position
df. groupby ([' team ', ' position ']). size ()
team position
AF3
G2
BF 1
G4
dtype: int64
По результату мы видим:
- Команда А и позиция F появляются 3 раза.
- Команда А и позиция G появляются дважды .
И так далее.
Пример 3: подсчитать вхождения, сгруппированные по нескольким переменным, и отсортировать
В следующем коде показано, как использовать функции groupby() и size() для подсчета вхождений значений для каждой комбинации значений в столбцах команды и позиции , а затем сортировать по количеству:
#count occurrences for each combination of team and position and sort
df. groupby ([' team ', ' position ']). size (). sort_values (ascending= False )
team position
BG 4
AF3
G2
BF 1
dtype: int64
В выходных данных отображается количество каждой комбинации значений команды и позиции , отсортированное по количеству в порядке убывания.
Примечание . Для сортировки по номеру в порядке возрастания просто удалите возрастающий=False в функции sort_values() .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как посчитать уникальные значения с помощью Pandas GroupBy
Как применить функцию к Pandas Groupby
Как создать гистограмму из Pandas GroupBy