Pandas: como calcular o modo em um objeto groupby


Você pode usar a seguinte sintaxe para calcular o modo em um objeto GroupBy no pandas:

 df. groupby ([' group_var '])[' value_var ']. agg ( pd.Series.mode )

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: modo de cálculo em um objeto GroupBy

Suponha que temos o seguinte DataFrame do pandas que mostra os pontos marcados por jogadores de basquete de diferentes times:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [10, 10, 12, 15, 19, 23, 20, 20, 26]})

#view DataFrame
print (df)

  team points
0 to 10
1 to 10
2 to 12
3 to 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26

Podemos usar a seguinte sintaxe para calcular o valor dos pontos de moda para cada equipe:

 #calculate mode points value for each team
df. groupby ([' team '])[' points ']. agg ( pd.Series.mode )

team
At 10
B [19, 23]
C 20
Name: points, dtype: object

Veja como interpretar o resultado:

  • O valor dos pontos de moda para o Time A é 10 .
  • Os valores dos pontos de moda para o Time B são 19 e 23 .
  • O valor dos pontos de moda para o Time C é 20 .

Se um grupo tiver vários modos, você poderá usar a seguinte sintaxe para exibir cada modo em uma linha diferente:

 #calculate mode points value for each team
df. groupby ([' team '])[' points ']. apply ( pd.Series.mode )

team   
At 0 10
B 0 19
      1 23
C 0 20
Name: points, dtype: int64

Nota : Você pode encontrar a documentação completa da operação GroupBy no pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Pandas: como calcular a soma acumulada por grupo
Pandas: como contar valores únicos por grupo
Pandas: como calcular a correlação por grupo

Add a Comment

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