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.0Vá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
- Fundamentos de Series e DataFrame
- Indexação, filtragem e máscaras booleanas
- GroupBy, agregação e tabelas dinâmicas
- Mesclagem, junção e limpeza de dados