O que é e como usar a função Pandas groupby()
Com a função DataFrame.groupby() do Python Pandas, você pode agrupar dados com base em critérios específicos e executar diversas agregações e transformações.
- Fique online com 99,99% de tempo de atividade e segurança robusta
- Aumente o desempenho 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 parâmetros. Sua sintaxe básica é a seguinte:
DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)pythonParâmetros importantes 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 MultiIndex para especificar um ou mais níveis de agrupamento | None
|
as_index
|
Se verdadeiro (True), as chaves do grupo são definidas como o índice do DataFrame resultante
|
True
|
group_keys
|
Se verdadeiro (True), as chaves do grupo são incluídas no índice dos grupos
|
True
|
dropna
|
Especifica se grupos com valores NaN devem ser excluídos | True
|
Como usar a função Pandas DataFrame.groupby()
A função Pandas groupby() é especialmente útil para analisar e resumir grandes conjuntos de dados, facilitando a identificação de padrões ou anomalias.
Agrupar e agregar
Apresentamos abaixo um exemplo de conjunto de dados de vendas que contém informações sobre a data da venda, o produto vendido e sua quantidade:
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)pythonO 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 10Em seguida, vamos agrupar o conjunto de dados por produto com a função Pandas groupby(). Depois, faremos o cálculo da quantidade 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)pythonO resultado apresentará o número total de unidades vendidas de cada produto:
Produto
A 35
B 45
Nome: Quantidade, dtype: int64Agregaçõ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)pythonO 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 100Usando a função Pandas DataFrame.groupby(), vamos agrupar os dados por produto e, em seguida, aplicaremos a função agg() para calcular a quantidade 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)pythonEste será o resultado obtido:
Quantidade Receita
sum sum mean
Produto
A 35 350 116.666667
B 45 450 225.000000
