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