0Pricing
Python Academy · Aula

GroupBy, agregação e tabelas dinâmicas

Resuma dados com operações de groupby e tabelas dinâmicas.

GroupBy, agregação e tabelas dinâmicas é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 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 Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

Noções básicas de groupby

df.groupby("col") divide o DataFrame em grupos pelos valores exclusivos da coluna. Encadeie uma agregação para obter resultados.

import pandas as pd

df = pd.DataFrame({
    "dept":["HR","IT","HR","IT","HR"],
    "salary":[60,80,65,90,70]
})
print(df.groupby("dept")["salary"].mean())
# HR    65.0
# IT    85.0

Várias funções de agregação

Use agg() para aplicar várias funções de agregação de uma só vez.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
result = df.groupby("dept")["sal"].agg(["mean","max","count"])
print(result)

Agregações nomeadas

Use argumentos nomeados em agg() para nomear explicitamente as colunas de saída (Pandas 0.25+).

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
result = df.groupby("dept").agg(
    avg_sal=("sal","mean"),
    max_sal=("sal","max"),
    count=("sal","size")
)
print(result)

groupby em várias colunas

Transmita uma lista de colunas para criar grupos hierárquicos.

import pandas as pd

df = pd.DataFrame({
    "year":[2023,2023,2024,2024],
    "dept":["HR","IT","HR","IT"],
    "sal":[60,80,65,90]
})
print(df.groupby(["year","dept"])["sal"].sum())

transform()

transform retorna uma Series alinhada ao índice original — útil para adicionar estatísticas no nível do grupo novamente ao DataFrame original.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
df["dept_avg"] = df.groupby("dept")["sal"].transform("mean")
print(df)

filter()

filter(func) mantém apenas os grupos nos quais a função retorna True.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR"],"sal":[60,80,65]})
# Keep only departments with mean salary > 70:
result = df.groupby("dept").filter(lambda g: g["sal"].mean() > 70)
print(result)

pivot_table

pd.pivot_table cria um resumo no estilo de planilha com agregação personalizada.

import pandas as pd

df = pd.DataFrame({
    "year":[2023,2023,2024,2024],
    "region":["East","West","East","West"],
    "sales":[100,150,120,200]
})
pt = pd.pivot_table(df, values="sales",
                    index="year", columns="region",
                    aggfunc="sum")
print(pt)

crosstab

pd.crosstab calcula uma tabulação cruzada — útil para contar combinações de valores categóricos.

import pandas as pd

df = pd.DataFrame({"gender":["M","F","M","F","M"],"result":["pass","pass","fail","fail","pass"]})
print(pd.crosstab(df["gender"], df["result"]))

apply()

apply(func) aplica uma função personalizada ao DataFrame de cada grupo (axis=0) ou a cada linha/coluna (axis=1).

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR"],"sal":[60,80,65]})

def range_sal(g):
    return g["sal"].max() - g["sal"].min()

print(df.groupby("dept").apply(range_sal))

unstack para remodelagem

Depois de um groupby com vários níveis, use unstack() para mover o nível mais interno do índice para as colunas.

import pandas as pd

df = pd.DataFrame({"year":[2023,2023,2024],"dept":["HR","IT","HR"],"sal":[60,80,65]})
result = df.groupby(["year","dept"])["sal"].mean().unstack()
print(result)

Resample para séries temporais

resample("M") agrupa um DataFrame de série temporal por período do calendário, permitindo agregações mensais/anuais.

import pandas as pd

idx = pd.date_range("2024-01-01", periods=90, freq="D")
df = pd.DataFrame({"sales": range(90)}, index=idx)
monthly = df.resample("ME").sum()
print(monthly)

Verificação rápida

O que groupby().transform("mean") retorna?

Recapitulação

groupby divide os dados em grupos para agregação. Use agg() para várias funções, transform() para propagar as estatísticas dos grupos de volta aos dados e filter() para remover grupos; use pivot_table()/crosstab() para resumos de várias dimensões.

Perguntas Frequentes

A aula “GroupBy, agregação e tabelas dinâmicas” é grátis?

Sim — o texto completo de “GroupBy, agregação e tabelas dinâmicas” é 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 Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “GroupBy, agregação e tabelas dinâmicas”?

Resuma dados com operações de groupby e tabelas dinâmicas. Você pratica Python Academy 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 Python Academy?

Nenhuma experiência prévia é necessária. Python Academy 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 3 de 4.

Quanto tempo leva a aula “GroupBy, agregação e tabelas dinâmicas”?

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 Python Academy?

Sim. Cada aula de Python Academy 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. Fundamentos de Series e DataFrame
  2. Indexação, filtragem e máscaras booleanas
  3. GroupBy, agregação e tabelas dinâmicas
  4. Mesclagem, junção e limpeza de dados
← Voltar para Python Academy