O que há na base?
Grão de cada linha, período, origem, colunas, tipos, categorias e possíveis chaves. Exemplo: uma linha é um passageiro ou uma viagem?
Guia de estudo · Dados e Python
Análise Exploratória de Dados, ou AED, é investigar um conjunto de dados para compreender sua estrutura, qualidade, padrões e limitações. Ela transforma uma tabela desconhecida em perguntas melhores, hipóteses verificáveis e decisões sobre o próximo passo.
Exemplo guiado: passageiros do Titanic · OpenML 40945 ↗
Explorar não é provar causalidade. É descobrir onde vale investigar.
01 / POR QUE FAZER
Antes de treinar um modelo ou construir um painel, você precisa saber se os dados representam a pergunta de negócio.
Grão de cada linha, período, origem, colunas, tipos, categorias e possíveis chaves. Exemplo: uma linha é um passageiro ou uma viagem?
Dados ausentes, erros de digitação, duplicações reais ou aparentes, seleção da amostra e variáveis disponíveis somente depois do evento.
Definir tratamento, novas coletas, segmentações e hipóteses. Um gráfico útil termina em uma pergunta ou ação, não só em uma figura.
Se a receita caiu, compare volume, preço, devoluções, regiões e datas. Uma média geral pode esconder que a queda ocorreu apenas em um canal ou começou após uma mudança no processo de pedidos.
02 / O QUE ANALISAR
Use a sequência como checklist. Volte etapas sempre que surgir uma inconsistência.
Defina a pergunta, o período e o que representa cada linha. Verifique se há documentação e se as colunas foram criadas antes ou depois do resultado.
Conte linhas e colunas; identifique números, datas, textos e categorias. Um código de classe pode ser numérico, mas continua sendo uma categoria.
Meça ausências, valores impossíveis, categorias inconsistentes e duplicatas com uma chave de negócio. Diferencie zero, vazio e “não se aplica”.
Examine frequências, mediana, dispersão e extremos. Histogramas e boxplots revelam assimetria e pontos que merecem investigação.
Compare segmentos, taxas e intervalos. Observe tamanho dos grupos; uma taxa alta em um grupo minúsculo pode enganar.
Registre hipóteses, decisões de limpeza, possíveis vieses e o que a base não permite afirmar. Correlação ou diferença entre grupos não prova causa.
03 / KIT PYTHON
Com pandas, comece pela pergunta e use cada comando para respondê-la. No notebook, todos aparecem no mesmo fluxo.
| Pergunta | Comando | O que observar |
|---|---|---|
| Como é a base? | df.shape, df.head(), df.info() | Tamanho, amostra, tipos e contagem de não nulos. |
| Quanto falta? | df.isna().mean().mul(100) | Percentual ausente por coluna; investigue se a falta tem padrão. |
| Quais os resumos? | df.describe(include="all").T | Centro, dispersão, frequências e categorias dominantes. |
| Como se distribui? | df["sex"].value_counts(dropna=False) | Classes raras, desequilíbrio e valores ausentes. |
| Há repetição? | df.duplicated().sum() | Linhas iguais; confirme a chave antes de remover. |
| Como os grupos diferem? | df.groupby("sex", observed=True)["survived"].agg(["size", "mean"]) | Tamanho do grupo e taxa de sobrevivência. |
| Qual a taxa em cada classe? | pd.crosstab(df["pclass"], df["survived"], normalize="index") | Percentuais calculados dentro de cada classe. |
| Há valores extremos? | df["fare"].quantile([.25, .5, .75, .95]) | Mediana versus cauda; extremo não é automaticamente erro. |
Para a AED, a saída precisa de interpretação: mean() ignora ausentes e size conta linhas; count conta apenas valores não nulos na coluna analisada.
04 / CASO GUIADO
O conjunto OpenML 40945 ↗ tem 1.309 registros e é usado em um exemplo oficial do scikit-learn ↗. Ele é baixado pelo scikit-learn; não é um dataset embutido como Iris. A primeira execução requer internet.
Comece com classe, sexo registrado, idade e tarifa. Depois pergunte se há valores ausentes, tamanhos de grupo diferentes e variáveis registradas após o naufrágio.
survived: 0 ou 1, o desfecho observado.pclass: 1, 2 ou 3; trate como classe, não como medida contínua.age e fare: distribuições numéricas.sex e embarked: categorias para comparação.import pandas as pd
from sklearn.datasets import fetch_openml
base = fetch_openml(data_id=40945, as_frame=True)
df = base.frame[[
"survived", "pclass", "sex", "age",
"fare", "embarked"
]].copy()
df["survived"] = pd.to_numeric(df["survived"])
print(df.shape)
print(df.isna().mean().mul(100).round(1))
print(df.groupby("sex", observed=True)
["survived"].agg(["size", "mean"]))05 / ESCOLHA O GRÁFICO
O gráfico certo depende do tipo de variável e da pergunta. Veja as escolhas reproduzidas no notebook.
Mostra a forma da distribuição de idade ou tarifa. Compare concentração, assimetria e caudas antes de escolher apenas a média.
Compare proporções por classe ou sexo. Mostre também o número de pessoas em cada grupo para evitar leitura exagerada.
Resume mediana, quartis e extremos de tarifas. Investigue valores raros antes de classificá-los como erro.
import matplotlib.pyplot as plt
df["age"].dropna().hist(bins=20)
plt.xlabel("Idade")
plt.ylabel("Passageiros")
plt.title("Distribuição de idade")
plt.show()
Evite conclusões causais: diferenças entre grupos podem refletir outras variáveis, regras de embarque, contexto histórico ou registros incompletos. AED descreve o observado e produz hipóteses.
06 / MÃO NA MASSA
O notebook carrega os dados por fetch_openml, confere estrutura e qualidade, calcula resumos e taxas e produz histogramas, barras, boxplots, mapa de ausências e correlações. Termine registrando suas interpretações.
Python + pandas + scikit-learn + matplotlib. Compatível com Jupyter e Google Colab. A primeira execução precisa de internet para buscar o OpenML.
.ipynb.Não automaticamente. Primeiro quantifique as ausências e veja se se concentram em algum grupo. O tratamento depende do objetivo; para um modelo, ajuste qualquer imputação apenas nos dados de treino.
Não. A AED mostra associação no conjunto observado. Para falar de causa, seria necessário um desenho de análise que trate confundimento e vieses.
Não. Duas pessoas podem compartilhar os mesmos valores das colunas selecionadas. Antes de excluir, identifique uma chave confiável e o significado de cada registro.
07 / LEITURA COMPLEMENTAR
Documentação oficial para aprofundar os comandos e páginas do site para seguir estudando.
fetch_openmlReferência da função usada no notebook ↗
FONTE DOS DADOS · OPENMLTitanic, conjunto 40945Descrição, variáveis e origem da base ↗
NESTE SITEOnde encontrar outras fontes de dadosCatálogo de bases para praticar →
NESTE SITEEstatística para DadosMedidas, outliers, inferência e laboratório interativo →
NESTE SITEMachine Learning: do dado ao modeloContinue depois da AED →