🧹 Data Cleaning: Transforme Dados Bagunçados em Ouro!

import pandas as pd

import numpy as np

from scipy.stats.mstats import winsorize

from sklearn.preprocessing import MinMaxScaler, StandardScaler

Carregando dados🔗

dados = pd.read_csv('vendas_contaminados.csv')

Pipeline integrado de limpeza🔗

def pipeline_limpeza(df):

# Valores faltantes df = df.dropna(subset=['cliente_id']) df['valor'].fillna(df['valor'].median(), inplace=True) # Duplicatas df = df.drop_duplicates(subset=['transacao_id'], keep='first') # Outliers Q1 = df['valor'].quantile(0.25) Q3 = df['valor'].quantile(0.75) df['valor'] = winsorize(df['valor'], limits=[0.05, 0.05]) # Padronização df['data'] = pd.to_datetime(df['data'], errors='coerce') df['regiao'] = df['regiao'].astype('category') df['preco'] = df['preco'].str.replace('R\$ ', '', regex=True).str.replace(',', '.').astype(float) # Textos df['produto'] = df['produto'].str.strip().str.lower() # Salvamento df.to_parquet('dados_transformados.parquet') return df

dados_limpos = pipeline_limpeza(dados)

# Guia Profissional de Limpeza de Dados com Pandas: Técnicas Essenciais para Análises Confiáveis
**Introdução**
Na era do Big Data, 80% do tempo de um projeto é gasto na preparação dos dados. Este guia reúne técnicas comprovadas com Pandas para transformar dados brutos em insumos confiáveis. Dominar essas habilidades é crucial para evitar conclusões equivocadas e garantir que seus modelos de machine learning gerem valor real.
**📚 Índice**
  • [1. Gestão de Valores Faltantes](#1-gestão-de-valores-faltantes)
  • [2. Detecção e Tratamento de Outliers](#2-detecção-e-tratamento-de-outliers)
  • [3. Eliminação de Duplicatas Estratégica](#3-eliminação-de-duplicatas-estratégica)
  • [4. Padronização e Normalização](#4-padronização-e-normalização)
  • [5. Limpeza Avançada de Textos](#5-limpeza-avançada-de-textos)
  • [6. Correção de Inconsistências](#6-correção-de-inconsistências)
  • [7. Categorização Inteligente](#7-categorização-inteligente)
  • [8. Boas Práticas e Automatização](#8-boas-práticas-e-automatização)
## 1. Gestão de Valores Faltantes {#1-gestão-de-valores-faltantes} Valores ausentes comprometem análises e modelos. Estratégias devem considerar o contexto:

Identificação detalhada🔗

print("Faltantes por coluna:\n", dados.isnull().sum())

Técnicas combinadas🔗

dados.dropna(subset=['coluna_critica'], inplace=True)

dados['coluna_numerica'].interpolate(method='time', inplace=True)

**Táticas Avançadas:**
  • Imputação múltipla (MICE) para dados multivariados
  • Algoritmos de ML para previsão de valores faltantes
## 2. Detecção e Tratamento de Outliers {#2-detecção-e-tratamento-de-outliers} Identifique anomalias com métodos estatísticos e visuais:

Método IQR🔗

Q1, Q3 = dados['valor'].quantile([0.25, 0.75])

dados = dados[~dados['valor'].between(Q1 - 1.5(Q3-Q1), Q3 + 1.5(Q3-Q1))]

Winsorização conservadora🔗

dados['valor'] = winsorize(dados['valor'], limits=[0.02, 0.02])

**Ferramentas Complementares:**
  • Gráficos de violino para análise de distribuição
  • DBSCAN para detecção de clusters anômalos
## 3. Eliminação de Duplicatas Estratégica {#3-eliminação-de-duplicatas-estratégica} Duplicatas requerem análise criteriana antes da remoção:

Detecção multidimensional🔗

cols_chave = ['cliente_id', 'data_compra']

duplicatas = dados[dados.duplicated(subset=cols_chave, keep='last')]

Remoção seletiva🔗

dados = dados.sort_values('data_criacao').drop_duplicates(subset=cols_chave, keep='first')

**Casos Especiais:**
  • Transações legítimas repetidas
  • Dados temporais com atualizações progressivas
## 4. Padronização e Normalização {#4-padronização-e-normalização} Uniformize formatos e escalas para análises consistentes:

Conversão de tipos segura🔗

dados['data'] = pd.to_datetime(dados['data'], format='%d/%m/%Y', errors='coerce')

Normalização numérica🔗

dados['preco_normalizado'] = MinMaxScaler().fit_transform(dados[['preco']])

Padronização de texto🔗

dados['cidade'] = dados['cidade'].str.normalize('NFKD').str.encode('ascii', errors='ignore').str.decode('utf-8').str.lower()

## 5. Limpeza Avançada de Textos {#5-limpeza-avançada-de-textos}
Domine expressões regulares para dados textuais complexos:

Extração de padrões🔗

dados['cep'] = dados['endereco'].str.extract(r'(\d{5}-\d{3})')

Correção de encoding🔗

dados['comentario'] = dados['comentario'].apply(lambda x: x.encode('latin-1').decode('utf-8', errors='replace'))

**Kit de Sobrevivência:**
  • `Unidecode` para transliteração
  • `fuzzywuzzy` para correspondência aproximada
## 6. Correção de Inconsistências {#6-correção-de-inconsistências} Mapeamento estratégico para dados categóricos:

Dicionário de normalização🔗

mapeamento = {

'são paulo': ['sao paulo', 'SP', 's.paulo'], 'rio de janeiro': ['Rio', 'RJ'] }

for padrao, variantes in mapeamento.items():

dados.replace(variantes, padrao, inplace=True)
## 7. Categorização Inteligente {#7-categorização-inteligente}
Transforme dados brutos em features significativas:

Binagem adaptativa🔗

dados['faixa_etaria'] = pd.qcut(dados['idade'], q=4, labels=['Jovem', 'Adulto', 'Meia-Idade', 'Idoso'])

Codificação contextual🔗

condicoes = [

dados['valor'] > dados['valor'].quantile(0.9), dados['valor'] > dados['valor'].quantile(0.75) ]

dados['nivel_valor'] = np.select(condicoes, ['Alto', 'Médio'], 'Baixo')

## 8. Boas Práticas e Automatização {#8-boas-práticas-e-automatização}
Estruture processos reprodutíveis:

Pipeline modularizado🔗

class DataCleaner:

def __init__(self): self.scaler = StandardScaler() def fit_transform(self, df): # Implementar etapas de transformação return df_processed

Documentação automatizada🔗

with open('metadata.txt', 'w') as f:

f.write(f"Transformações executadas em {pd.Timestamp.now()}\n") f.write(dados.dtypes.to_string())
**Checklist Profissional:**
1. Versionamento de datasets brutos e processados
2. Testes unitários para funções de transformação
3. Monitoramento de distribuições pós-limpeza
**🎯 Conclusão**
Dominar a limpeza de dados com Pandas é diferencial competitivo em ciência de dados. Este guia sintetiza técnicas essenciais desde o básico até práticas profissionais. Implemente essas estratégias em pipelines automatizados e documentados para garantir qualidade consistente em seus projetos.
**Próximos Passos:**
  • [ ] Crie um pipeline de validação com Great Expectations
  • [ ] Implemente monitoramento contínuo de qualidade
  • [ ] Explore técnicas de matching aproximado para dados complexos
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo