Com a função DataFrame.groupby() do Python Pandas, você pode agrupar dados com base em critérios es­pe­cí­fi­cos e executar diversas agre­ga­ções e trans­for­ma­ções.

Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho com um clique à medida que o tráfego cresce
  • Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana

Qual é a sintaxe da função Pandas DataFrame.groupby()?

A função Pandas groupby() aceita a inclusão de até quatro pa­râ­me­tros. Sua sintaxe básica é a seguinte:

DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)
python

Pa­râ­me­tros im­por­tan­tes da função Pandas groupby

Parâmetro Descrição Valor padrão
by Chave ou lista em Python de chaves para agrupar. Não deve ser combinado com o parâmetro level None
level Usado com o objeto Mul­ti­In­dex para es­pe­ci­fi­car um ou mais níveis de agru­pa­mento None
as_index Se ver­da­deiro (True), as chaves do grupo são definidas como o índice do DataFrame re­sul­tante True
group_keys Se ver­da­deiro (True), as chaves do grupo são incluídas no índice dos grupos True
dropna Es­pe­ci­fica se grupos com valores NaN devem ser excluídos True

Como usar a função Pandas DataFrame.groupby()

A função Pandas groupby() é es­pe­ci­al­mente útil para analisar e resumir grandes conjuntos de dados, fa­ci­li­tando a iden­ti­fi­ca­ção de padrões ou anomalias.

Agrupar e agregar

Apre­sen­ta­mos abaixo um exemplo de conjunto de dados de vendas que contém in­for­ma­ções sobre a data da venda, o produto vendido e sua quan­ti­dade:

import pandas as pd
# Exemplo de conjunto de dados de vendas
data = {
    'Data': ['2025-01-01', '2025-01-01', '2025-01-02', '2025-01-02', '2025-01-03'],
    'Produto': ['A', 'B', 'A', 'B', 'A'],
    'Quantidade': [10, 20, 15, 25, 10]
}
df = pd.DataFrame(data)
print(df)
python

O DataFrame criado ficará assim:

Data Produto  Quantidade
0  2025-01-01       A       10
1  2025-01-01       B       20
2  2025-01-02       A       15
3  2025-01-02       B       25
4  2025-01-03       A       10

Em seguida, vamos agrupar o conjunto de dados por produto com a função Pandas groupby(). Depois, faremos o cálculo da quan­ti­dade total vendida de cada produto usando sum():

# Agrupar por produto e calcular a soma da quantidade vendida
total = df.groupby('Produto')['Quantidade'].sum()
print(total)
python

O resultado apre­sen­tará o número total de unidades vendidas de cada produto:

Produto
A    35
B    45
Nome: Quantidade, dtype: int64

Agre­ga­ções múltiplas

No exemplo a seguir, vamos usar um conjunto de dados maior que também inclui a receita gerada:

data = {
    'Data': ['2025-01-01', '2025-01-01', '2025-01-02', '2025-01-02', '2025-01-03'],
    'Produto': ['A', 'B', 'A', 'B', 'A'],
    'Quantidade': [10, 20, 15, 25, 10],
    'Receita': [100, 200, 150, 250, 100]
}
df = pd.DataFrame(data)
print(df)
python

O DataFrame ficará assim:

Data    Produto  Quantidade  Receita
0  2025-01-01       A          10         100
1  2025-01-01       B          20         200
2  2025-01-02       A          15         150
3  2025-01-02       B          25         250
4  2025-01-03       A          10         100

Usando a função Pandas DataFrame.groupby(), vamos agrupar os dados por produto e, em seguida, apli­ca­re­mos a função agg() para calcular a quan­ti­dade e a receita total, bem como a receita média por produto.

# Agrupar por produto e aplicar múltiplas agregações
groups = df.groupby('Produto').agg({
    'Quantidade': 'sum',
    'Receita': ['sum', 'mean']
})
print(groups)
python

Este será o resultado obtido:

Quantidade Receita        
          sum    sum    mean
Produto                  
A          35    350  116.666667
B          45    450  225.000000
Ir para o menu principal