Pandas: como usar groupby com múltiplas agregações


Você pode usar a seguinte sintaxe básica para usar um groupby com múltiplas agregações em pandas:

 df. groupby (' team '). agg (
    mean_points=(' points ', np. mean ),
    sum_points=(' points ', np. sum ),
    std_points=(' points ', np. std ))

Esta fórmula específica agrupa as linhas do DataFrame pela variável chamada team e então calcula várias estatísticas resumidas para a variável chamada points .

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

Exemplo: usando Groupby com múltiplas agregações em Pandas

Suponha que temos o seguinte DataFrame do pandas que contém informações sobre vários jogadores de basquete:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Heat', 'Heat', 'Heat'],
                   ' points ': [18, 22, 19, 14, 14, 11],
                   ' assists ': [5, 7, 7, 9, 12, 9]})

#view DataFrame
print (df)

   team points assists
0 Mavs 18 5
1 Mavs 22 7
2 Mavs 19 7
3 Heat 14 9
4 Heat 14 12
5 Heat 11 9

Podemos usar a seguinte sintaxe para agrupar as linhas do DataFrame por equipe e depois calcular a média, soma e desvio padrão dos pontos de cada equipe:

 import numpy as np

#group by team and calculate mean, sum, and standard deviation of points
df. groupby (' team '). agg (
    mean_points=(' points ', np. mean ),
    sum_points=(' points ', np. sum ),
    std_points=(' points ', np. std ))

      mean_points sum_points std_points
team			
Heat 13.000000 39 1.732051
Mavs 19.666667 59 2.081666

O resultado exibe a média, a soma e o desvio padrão da variável de pontos de cada equipe .

Você pode usar sintaxe semelhante para realizar um agrupamento e calcular quantas agregações desejar.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns do panda:

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

Add a Comment

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