Tabelas dinâmicas e tabulação cruzada
pd.pivot_table(), pd.crosstab() e remodelagem de dados para estatísticas resumidas.
Tabelas dinâmicas e tabulação cruzada é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 2 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.
Reformatação para Obter Insights
Uma tabela dinâmica reforma dados longos em uma grade, resumindo um valor em dois eixos categóricos. É a tabela dinâmica de planilha que você conhece, mas programável.
import pandas as pd
df = pd.DataFrame({
"region": ["E", "E", "W", "W", "E"],
"product": ["A", "B", "A", "B", "A"],
"sales": [10, 20, 30, 40, 50],
})pivot_table básico
pd.pivot_table recebe values (os números a resumir), index (linhas) e columns (colunas). Por padrão, calcula a média de células duplicadas.
pt = pd.pivot_table(df, values="sales", index="region", columns="product")
print(pt)
# product A B
# region
# E 30.0 20.0
# W 30.0 40.0Escolha de aggfunc
Defina aggfunc para controlar como as duplicatas são consolidadas: soma, mean, contagem e outras opções. Use uma lista para calcular várias de uma só vez.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum")
print(pt)Várias aggfuncs
Passe uma lista de funções para calcular vários resumos lado a lado.
pt = pd.pivot_table(df, values="sales", index="region",
aggfunc=["sum", "mean", "count"])
print(pt)Preenchimento de Células Vazias
Combinações sem dados se tornam NaN. fill_value as substitui, geralmente por 0, para produzir relatórios limpos.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum", fill_value=0)
print(pt)Margens (Totais)
Defina margins=True para acrescentar totais gerais de linhas e colunas, rotulados como "Todos" por padrão.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum",
fill_value=0, margins=True)
print(pt)Vários Níveis de Índice
Passe listas para index ou columns a fim de obter detalhamentos hierárquicos, por exemplo, primeiro por região e depois por produto.
df["channel"] = ["on", "off", "on", "off", "on"]
pt = pd.pivot_table(df, values="sales",
index=["region", "channel"], aggfunc="sum")
print(pt)Tabulação Cruzada com crosstab
pd.crosstab é uma tabela dinâmica especializada que COUNTS a frequência das combinações de duas variáveis categóricas, sem precisar de uma coluna de valores.
ct = pd.crosstab(df["region"], df["product"])
print(ct)
# product A B
# region
# E 2 1
# W 1 1Normalização de crosstab
O argumento normalize transforma contagens em proporções: "index" por linha, "columns" por coluna ou True em relação ao total geral.
ct = pd.crosstab(df["region"], df["product"], normalize="index")
print(ct) # each row sums to 1.0crosstab com Valores
Forneça values e aggfunc para fazer crosstab resumir uma métrica em vez de contar, aproximando seu uso do de pivot_table.
ct = pd.crosstab(df["region"], df["product"],
values=df["sales"], aggfunc="sum")
print(ct)pivot_table versus crosstab
Use pivot_table ao resumir um valor numérico; use crosstab ao contar frequências de combinações de categorias. crosstab também transforma a normalização em proporções com uma única linha.
Verificação rápida
Teste seus conhecimentos de reformatação.
Recapitulação
Ferramentas de reformatação:
pd.pivot_table(values, index, columns, aggfunc)resume uma métricafill_valuepara células vazias emargins=Truepara totais- Use listas em index/columns para criar uma hierarquia
pd.crosstabconta combinações;normalizeproduz proporções
Perguntas Frequentes
A aula “Tabelas dinâmicas e tabulação cruzada” é grátis?
Sim — o texto completo de “Tabelas dinâmicas e tabulação cruzada” é 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 “Tabelas dinâmicas e tabulação cruzada”?
pd.pivot_table(), pd.crosstab() e remodelagem de dados para estatísticas resumidas. 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 2 de 4.
Quanto tempo leva a aula “Tabelas dinâmicas e tabulação cruzada”?
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
- GroupBy e agregação
- Tabelas dinâmicas e tabulação cruzada
- Mesclagem e junção avançadas
- Séries temporais no Pandas