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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *