Boa noite. Você poderia fornecer uma explicação comparativa entre as funções crosstab e pivot_table ? Pois pelo que entendi as duas tem a mesma finalidade, ou estou errado ? Muito Obrigado!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa noite. Você poderia fornecer uma explicação comparativa entre as funções crosstab e pivot_table ? Pois pelo que entendi as duas tem a mesma finalidade, ou estou errado ? Muito Obrigado!
Oi, tudo bem?
Essa é uma dúvida bem comum, e fico feliz que você esteja explorando ferramentas como crosstab() e pivot_table() no Pandas. Ambas servem para resumir dados, mas têm propósitos diferentes. Vamos ver o conceito de cada uma e depois um exemplo prático para ficar bem claro.
crosstab(): contagem de frequênciasA função crosstab() cria uma tabela de contingência, ou seja, conta quantas vezes cada combinação de valores aparece. É ideal para análises categóricas simples.
pivot_table(): resumo de valores numéricosJá a função pivot_table() é mais flexível e permite fazer cálculos como média, soma, contagem etc., com base em colunas numéricas. Serve para análises mais completas.
Vamos supor este DataFrame:
import pandas as pd
df = pd.DataFrame({
'Sexo': ['F', 'M', 'F', 'M', 'F', 'M'],
'Curso': ['Engenharia', 'Engenharia', 'Medicina', 'Medicina', 'Engenharia', 'Medicina'],
'Nota': [8, 7, 9, 6, 5, 8]
})
crosstab():pd.crosstab(df['Sexo'], df['Curso'])
Resultado:
| Curso | Engenharia | Medicina |
|---|---|---|
| F | 2 | 1 |
| M | 1 | 2 |
Aqui estamos contando quantas pessoas de cada sexo estão em cada curso.
pivot_table():pd.pivot_table(df, index='Sexo', columns='Curso', values='Nota', aggfunc='mean')
Resultado:
| Curso | Engenharia | Medicina |
|---|---|---|
| F | 6.5 | 9.0 |
| M | 7.0 | 7.0 |
Aqui estamos calculando a média das notas por sexo e curso.
crosstab(): para contar quantas vezes algo aparece.pivot_table(): para calcular médias, somas e outros agregados com dados numéricos.Espero ter ajudado.
Qualquer dúvida que surgir, compartilhe no fórum.
Abraços e bons estudos!
Abaixo compartilho as documentações para você mergulhar ainda mais sobre o tema: