Como contar avistamentos de grupos em pandas


Muitas vezes você pode estar interessado em contar o número de observações por grupo em um DataFrame do pandas.

Felizmente, isso é fácil de fazer usando as funções groupby() e size() com a seguinte sintaxe:

 df. groupby (' column_name '). size ()

Este tutorial explica vários exemplos de uso prático desta função usando o seguinte data frame:

 import numpy as np
import pandas as pd

#create pandas DataFrame
df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'division':['E', 'W', 'E', 'E', 'W', 'W', 'E'],
                   'rebounds': [11, 8, 7, 6, 6, 5, 12]})

#display DataFrame
print (df)

  team division rebounds
0 AE 11
1 AW 8
2 BE 7
3 BE 6
4 BW 6
5 CW 5
6 CE 12

Exemplo 1: contagem por uma variável

O código a seguir mostra como contar o número total de observações por equipe:

 #count total observations by variable 'team'
df. groupby (' team '). size ()

team
At 2
B 3
C 2
dtype: int64

Pelo resultado podemos ver que:

  • A equipe A tem 2 observações
  • A equipe B tem 3 observações
  • A equipe C tem 2 observações

Observe que o código anterior produz uma série. Na maioria dos casos queremos trabalhar com um DataFrame, então podemos usar a função reset_index() para produzir um DataFrame:

 df. groupby (' team '). size (). reset_index (name=' obs ')

        team obs
0 to 2
1 B 3
2 C 2

Exemplo 2: contar e classificar por uma variável

Também podemos usar a função sort_values() para classificar o número de grupos.

Podemos especificar ascendente=Falso para classificar o número de grupos do maior para o menor ou ascendente=True para classificar do menor para o maior:

 df. groupby (' team '). size (). reset_index (name=' obs '). sort_values ([' obs '], ascending= True )

        team obs
0 to 2
2 C 2
1 B 3

Exemplo 3: Contando por diversas variáveis

Também podemos contar o número de observações agrupadas por diversas variáveis em um DataFrame do pandas:

 #count observations grouped by team and division
df. groupby ([' team ',' division ']). size (). reset_index (name=' obs ')

        team division obs
0 A E 1
1 A W 1
2 B E 2
3 B W 1
4 C E 1
5 C W 1

Pelo resultado podemos ver que:

  • 1 observação pertence à equipe A e divisão E
  • 1 observação pertence à equipe A e divisão W
  • 2 observações pertencem à equipe B e divisão E
  • 1 observação pertence à equipe B e divisão W
  • 1 observação pertence à equipe C e divisão E
  • 1 observação pertence à equipe C e divisão W

Recursos adicionais

Como calcular a soma das colunas no Pandas
Como calcular a média das colunas no Pandas
Como encontrar o valor máximo das colunas no Pandas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *