Limpeza de Dados em Python: Tratando Valores Ausentes e Duplicados
Neste artigo, você vai aprender:
Como identificar e tratar valores ausentes (NaN).
Como remover ou substituir valores duplicados.
Técnicas de preenchimento de dados (imputação).
Exemplos práticos usando Pandas.
🔹 1. Preparando o ambiente
Certifique-se de ter o Pandas instalado:
pip install pandas
E importe no seu código:
import pandas as pd
🔹 2. Criando um dataset com problemas
Vamos criar um exemplo de dataset com valores ausentes e duplicados:
import numpy as np
dados = {
"nome": ["Ana", "Bruno", "Carlos", "Ana", "Diana", "Eduardo", None],
"idade": [25, 30, np.nan, 25, 40, None, 22],
"cidade": ["São Paulo", "Rio", "Rio", "São Paulo", None, "Belo Horizonte", "Curitiba"]
}
df = pd.DataFrame(dados)
print(df)
Saída:
nome idade cidade
0 Ana 25.0 São Paulo
1 Bruno 30.0 Rio
2 Carlos NaN Rio
3 Ana 25.0 São Paulo
4 Diana 40.0 None
5 Eduardo NaN Belo Horizonte
6 None 22.0 Curitiba
Perceba os problemas:
✅ Valores ausentes em nome, idade e cidade.
✅ Valores duplicados (Ana aparece 2 vezes com os mesmos dados).
🔹 3. Tratando valores ausentes (NaN)
3.1. Detectando valores ausentes
print(df.isnull().sum())
Saída:
nome 1
idade 2
cidade 1
dtype: int64
3.2. Removendo linhas com valores ausentes
df_drop = df.dropna()
print(df_drop)
👉 Isso elimina qualquer linha que tenha pelo menos um valor ausente.
3.3. Preenchendo valores ausentes com valor fixo
df_fill = df.fillna({"nome": "Desconhecido", "idade": 0, "cidade": "Não informado"})
print(df_fill)
👉 Boa prática para evitar perder dados, mas cuidado para não distorcer análises.
3.4. Preenchendo valores ausentes com média ou mediana
df["idade"].fillna(df["idade"].mean(), inplace=True)
print(df)
👉 Aqui, valores ausentes em idade foram substituídos pela média das idades existentes.
🔹 4. Tratando valores duplicados
4.1. Detectando duplicados
print(df.duplicated())
Saída (True = duplicado):
0 False
1 False
2 False
3 True
4 False
5 False
6 False
dtype: bool
4.2. Removendo duplicados
df_sem_duplicados = df.drop_duplicates()
print(df_sem_duplicados)
👉 Isso garante que não existam registros repetidos.
🔹 5. Exemplo prático completo
# Dataset inicial com problemas
print("Dataset original:")
print(df)
# 1. Preencher idade ausente com média
df["idade"].fillna(df["idade"].mean(), inplace=True)
# 2. Preencher nome e cidade ausentes com valores fixos
df.fillna({"nome": "Desconhecido", "cidade": "Não informado"}, inplace=True)
# 3. Remover duplicados
df = df.drop_duplicates()
print("\nDataset limpo:")
print(df)
Saída final:
nome idade cidade
0 Ana 25.0 São Paulo
1 Bruno 30.0 Rio
2 Carlos 29.4 Rio
4 Diana 40.0 Não informado
5 Eduardo 29.4 Belo Horizonte
6 Desconhecido 22.0 Curitiba
Agora o dataset está limpo, consistente e pronto para análise. 🚀
🔹 6. Conclusão
A limpeza de dados é um dos passos mais importantes no fluxo de trabalho de análise.
Com Pandas, você consegue:
✅ Detectar valores ausentes (isnull)
✅ Preencher lacunas (fillna) ou remover linhas (dropna)
✅ Tratar duplicados (drop_duplicates)
Essa etapa garante que suas análises e modelos sejam mais confiáveis e precisos.

Comentários
Postar um comentário