Pandas: como usar groupby() com size()
Você pode usar os seguintes métodos com as funções groupby() e size() no pandas para contar o número de ocorrências por grupo:
Método 1: contar ocorrências agrupadas por uma variável
df. groupby (' var1 '). size ()
Método 2: contar ocorrências agrupadas por múltiplas variáveis
df. groupby ([' var1 ', ' var2 ']). size ()
Método 3: Contar ocorrências agrupadas por múltiplas variáveis e ordenadas por número
df. groupby ([' var1 ', ' var2 ']). size (). sort_values (ascending= False )
Os exemplos a seguir mostram como usar cada método na prática com o seguinte DataFrame do 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
Exemplo 1: contar ocorrências agrupadas por uma variável
O código a seguir mostra como usar as funções groupby() e size() para contar ocorrências de valores na coluna team :
#count occurrences of each value in team column
df. groupby (' team '). size ()
team
AT 5
B5
dtype: int64
Pelo resultado, podemos ver que os valores A e B aparecem 5 vezes na coluna da equipe .
Exemplo 2: Contar ocorrências agrupadas por múltiplas variáveis
O código a seguir mostra como usar as funções groupby() e size() para contar ocorrências de valores para cada combinação de valores nas colunas equipe e posição :
#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
Pelo resultado podemos ver:
- A equipe A e a posição F aparecem 3 vezes.
- A equipe A e a posição G aparecem duas vezes .
E assim por diante.
Exemplo 3: contar ocorrências agrupadas por diversas variáveis e ordenar
O código a seguir mostra como usar as funções groupby() e size() para contar ocorrências de valores para cada combinação de valores nas colunas equipe e posição e, em seguida, classificar por contagem:
#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
A saída exibe a contagem de cada combinação de valores de equipe e posição , classificada por contagem em ordem decrescente.
Nota : Para classificar por número em ordem crescente, basta remover ascendente=False na função sort_values() .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:
Como contar valores únicos usando Pandas GroupBy
Como aplicar uma função ao Pandas Groupby
Como criar um gráfico de barras do Pandas GroupBy