0Pricing
Learn AI with Python · Aula

GroupBy e agregação

df.groupby(), agg(), transform(), apply() e agregações nomeadas com Named Aggregation.

GroupBy e agregação é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

A Ideia de Dividir-Aplicar-Combinar

GroupBy segue o padrão dividir-aplicar-combinar: divide as linhas em grupos por uma chave, aplica uma função a cada grupo e depois combina os resultados em um único quadro. Esse padrão é a base da maioria dos resumos analíticos.

import pandas as pd
df = pd.DataFrame({
    "dept": ["A", "A", "B", "B", "B"],
    "salary": [50, 70, 40, 60, 80],
})

groupby básico

df.groupby("col") cria um objeto agrupado. Encadear uma agregação como .mean() calcula um valor por grupo.

print(df.groupby("dept")["salary"].mean())
# dept
# A    60.0
# B    60.0

Várias Agregações

Chame várias reduções de uma só vez com .agg([...]), produzindo uma coluna por função.

print(df.groupby("dept")["salary"].agg(["mean", "min", "max", "count"]))

Dicionário de Agregação por Coluna

Passe um dicionário para .agg a fim de aplicar funções diferentes a colunas diferentes.

df["bonus"] = [5, 7, 4, 6, 8]
out = df.groupby("dept").agg({"salary": "mean", "bonus": "sum"})
print(out)

Agregação Nomeada

A agregação nomeada fornece nomes claros às colunas de saída usando a sintaxe pd.NamedAgg. Isso evita cabeçalhos de coluna multinível confusos.

out = df.groupby("dept").agg(
    avg_salary=("salary", "mean"),
    total_bonus=("bonus", "sum"),
)
print(out)

Agrupamento por Várias Chaves

Passe uma lista de colunas para agrupar por várias chaves de uma só vez, produzindo um resultado hierárquico (MultiIndex).

df["level"] = ["jr", "sr", "jr", "sr", "sr"]
print(df.groupby(["dept", "level"])["salary"].mean())

transform: Saída com o Mesmo Formato

.transform() retorna um resultado alinhado às linhas ORIGINAL, não uma linha por grupo. É perfeito para adicionar uma estatística do grupo de volta como uma nova coluna.

df["dept_avg"] = df.groupby("dept")["salary"].transform("mean")
print(df[["dept", "salary", "dept_avg"]])

transform para Normalização

Como transform faz a expansão de volta para cada linha, é possível normalizar dentro dos grupos, por exemplo subtraindo a média do grupo.

df["centered"] = df["salary"] - df.groupby("dept")["salary"].transform("mean")
print(df[["dept", "salary", "centered"]])

apply para Lógica Personalizada

.apply() fornece cada grupo, como um sub-DataFrame, à sua função. Use-o para lógicas que as agregações integradas não conseguem expressar, como retornar as N linhas principais de cada grupo.

top = df.groupby("dept").apply(lambda g: g.nlargest(1, "salary"))
print(top[["dept", "salary"]])

agg versus transform versus apply

agg reduz cada grupo a um valor. transform retorna um valor para cada linha original. apply é a opção genérica e flexível (porém mais lenta). Escolha a opção mais específica para obter clareza e velocidade.

Desagrupamento com reset_index

Os resultados de GroupBy colocam as chaves no índice. Chame .reset_index() para transformá-las novamente em colunas comuns, como a maior parte do código posterior espera.

flat = df.groupby("dept")["salary"].mean().reset_index()
print(flat)
#   dept  salary
# 0    A    60.0
# 1    B    60.0

Verificação rápida

Teste sua compreensão de groupby.

Recapitulação

Elementos essenciais de GroupBy:

  • Dividir-aplicar-combinar por meio de df.groupby("col")
  • .agg([...]) e agregação por dicionário ou nomeada para várias estatísticas
  • .transform() retorna resultados com o formato original
  • .apply() para lógica arbitrária por grupo
  • Use sempre .reset_index() para transformar as chaves dos grupos novamente em colunas

Perguntas Frequentes

A aula “GroupBy e agregação” é grátis?

Sim — o texto completo de “GroupBy e agregação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “GroupBy e agregação”?

df.groupby(), agg(), transform(), apply() e agregações nomeadas com Named Aggregation. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “GroupBy e agregação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. GroupBy e agregação
  2. Tabelas dinâmicas e tabulação cruzada
  3. Mesclagem e junção avançadas
  4. Séries temporais no Pandas
← Voltar para Learn AI with Python