Pandas: как использовать groupby и подсчет значений
Вы можете использовать следующий базовый синтаксис для подсчета частоты уникальных значений для каждой группы в DataFrame pandas:
df. groupby ([' column1 ', ' column2 ']). size (). unstack (fill_value= 0 )
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: использование GroupBy и подсчета значений в Pandas
Предположим, у нас есть следующий 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', 'C', 'G', 'F', 'F', 'F', 'F'], ' points ': [8, 8, 10, 10, 11, 8, 9, 10, 10, 10]}) #view DataFrame print (df) team position points 0 AG 8 1 GA 8 2 AF10 3 AF 10 4 AC 11 5 BG 8 6 BF 9 7 BF 10 8 BF 10 9 BF 10
Мы можем использовать следующий синтаксис для подсчета частоты значений очков , сгруппированных по столбцам команд и позиций :
#count frequency of points values, grouped by team and position
df. groupby ([' team ',' position ',' points ']). size (). unstack (fill_value= 0 )
points 8 9 10 11
team position
A C 0 0 0 1
F 0 0 2 0
G 2 0 0 0
B F 0 1 3 0
G 1 0 0 0
Вот как интерпретировать результат:
- Значение 8 появилось 0 раз в столбце очков для игроков команды А и позиции С.
- Значение 9 появилось 0 раз в столбце очков для игроков команды А и позиции С.
- Значение 10 появилось 0 раз в столбце очков для игроков команды А и позиции С.
- Значение 11 появилось в столбце очков 1 раз для игроков команды А и позиции С.
И так далее.
Мы также могли бы использовать следующий синтаксис для подсчета частоты позиций , сгруппированных по командам :
#count frequency of positions, grouped by team
df. groupby ([' team ', ' position ']). size (). unstack (fill_value= 0 )
position C F G
team
A 1 2 2
B 0 4 1
Вот как интерпретировать результат:
- Значение «С» возникло 1 раз в команде А.
- Значение «F» появилось 2 раза в команде А.
- Значение «G» появилось 2 раза в команде А.
- Значение «C» встречалось 0 раз в команде B.
- Значение «F» встречалось 4 раза в команде Б.
- Значение «G» возникло 1 раз в команде B.
И так далее.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как выполнить сумму GroupBy в Pandas
Как посчитать уникальные значения с помощью GroupBy в Pandas
Как использовать Groupby и Plot в Pandas