Pular para o conteúdo principal

Limpeza de dados: entendendo o essencial

A limpeza de dados é um dos pilares da ciência de dados. Entenda sua importância e como usar Python para conduzir o processo.
Atualizado 17 de set. de 2026  · 12 min lido

Explorar com IA

ChatGPTClaudePerplexity

Não importa quão sofisticadas sejam nossas análises ou algoritmos preditivos, a qualidade do resultado depende da qualidade dos dados de entrada. Em outras palavras: garbage in, garbage out.

Como os dados são a base de todos esses processos, é essencial dedicar tempo para garantir que estejam devidamente refinados.

A limpeza de dados é um processo fundamental no ciclo de vida da ciência de dados, e seu papel não pode ser subestimado quando buscamos descobrir insights e gerar respostas confiáveis. Na prática, os dados quase sempre chegam sujos, e a limpeza não pode ser evitada.

Neste artigo, vamos abordar ideias importantes, como lidar com valores ausentes, duplicatas e outliers. Para um passo a passo mais completo, confira nossos cursos Cleaning Data in Python ou Cleaning Data in R.

O que causa dados sujos?

Em termos simples, limpeza (ou saneamento) de dados é o processo necessário para preparar os dados para análise. Isso pode envolver encontrar e remover duplicatas e registros incompletos, além de modificar dados para corrigir informações imprecisas.

Dados sujos sempre foram um problema, e a explosão na geração de dados na última década só agravou isso. Só em 2020, o mundo gerou mais de 64 zettabytes de dados, o equivalente a 6,4 trilhões de gigabytes. Embora menos de 2% de tudo isso seja retido, esse volume sem dúvida amplia o problema já existente de “dados sujos”. Antes de limparmos os dados, é importante entender como eles ficaram sujos. As causas mais comuns incluem:

  • Erro humano durante digitação, registro ou codificação
  • Dispositivo sensor com defeito, como em aplicações de internet das coisas (IoT)
  • Corrupção causada por falhas de hardware ou software

Entender a raiz do problema cria a base para definir critérios de qualidade que nos ajudam a classificar os diferentes tipos de problemas do nosso dataset.

Por que a limpeza de dados é tão importante?

O processo de limpeza ajuda a criar um padrão para tratar os dados de uma organização. Como já mencionamos, em qualquer processo de analytics ou ciência de dados vale a regra: garbage in, garbage out. Quando negligenciada, a limpeza resulta em análises caras e equivocadas — em tempo, dinheiro e outros recursos.

O que é qualidade de dados?

Qualidade de dados é a medida qualitativa e/ou quantitativa de quão bem os dados atendem ao propósito a que se destinam. Esses critérios funcionam como modelos práticos para avaliar se os dados disponíveis são adequados para nossos objetivos. Pense neles como testes métricos que os dados precisam passar para serem considerados aptos a processos de ciência de dados.

Critérios de qualidade de dados

  1. Acurácia: A informação contida nos dados está correta em todos os detalhes? Em dados, buscamos aproximar padrões do mundo real; a acurácia indica quão fiéis são essas aproximações.
  2. Relevância: Esta informação impacta nosso objetivo final?
  3. Consistência: A fonte dos dados é verificada e confiável? Exemplo: um cliente com 15 anos e estado civil “casado”.
  4. Completude: Os dados são suficientes e abrangentes para o objetivo desejado? Esse é um problema comum ligado a valores ausentes; investigar a fonte pode ser um caminho.
  5. Uniformidade: Suponha uma coluna de vendas em que nem todas as transações estão na mesma moeda. É essencial converter tudo para uma moeda única. Uniformidade é isso: garantir o uso das mesmas unidades de medida em todos os sistemas.

Limpeza de dados vs. transformação de dados

É importante diferenciar limpeza de dados de transformação de dados. Transformação é um conjunto de processos que nos ajudam a extrair mais insights dos dados. Geralmente, isso muda o formato bruto para outro formato. Alguns exemplos:

  • Codificação (encoding): Processo de converter valores categóricos em valores binários para uso em cálculos de machine learning. A figura mostra como ficaria a coluna de gênero após codificação. A informação é a mesma, mas em outro formato.

exemplo de codificação de dados

  • Data binning: Também chamado de “bucketização”, reduz o efeito/tamanho de observações menores agrupando valores contínuos em faixas (ou categorias).

Exemplo de data binning

  • Escalonamento (scaling): Técnica comum em machine learning para padronizar valores de escalas diferentes em uma faixa fixa.

exemplo de escalonamento de dados

Perceba que, na maior parte das transformações, a representação original é alterada. Embora os dados sejam os mesmos, técnicas os transformam em um formato mais apropriado para machine learning ou outros fins.

Como a limpeza de dados é feita

É importante ter diretrizes para alcançar dados de alta qualidade. Um workflow de limpeza de dados ajuda a contemplar todas as etapas necessárias. Normalmente inclui:

  • Exploração de dados
  • Limpeza de dados
  • Verificação de dados
  • Relatório de limpeza de dados Algumas dessas etapas também serão demonstradas em Python

Exploração de dados

Explorar dados é entender a base por meio de uma análise aprofundada das variáveis presentes. Envolve técnicas visuais e de agregação para revelar problemas subjacentes. Para explorar bem, considere:

Contexto dos dados

Antes de limpar qualquer dado, é preciso entender seu contexto: a origem das entidades contidas no dataset. O contexto captura as circunstâncias de coleta — e isso orienta como usar e para que usar os dados.

Ele serve como bússola do que é aceitável na limpeza (e na análise) para que possamos tirar os insights certos. Com o contexto claro, partimos para a exploração.

Análise exploratória de dados

Análise exploratória de dados é o processo crítico de realizar investigações iniciais para descobrir padrões, identificar anomalias, testar hipóteses e checar premissas usando estatísticas descritivas e visualizações. Não há descoberta sem exploração. Sem explorar, fica difícil identificar os diversos problemas existentes.

Por exemplo, temos um dataset disponibilizado aqui. Os arquivos Rolling Sales do Department of Finance listam propriedades vendidas nos últimos doze meses na cidade de Nova York para as classes fiscais 1, 2 e 4. Vamos baixar e ler os dados do Bronx fornecidos.

#pandas
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

#read excel file
df = pd.read_excel("rollingsales_bronx.xls")

#preview data
df.head()

exemplo de dados de vendas do Bronx

Problemas notáveis neste dataframe incluem:

  1. colunas sem nome
  2. valores ausentes nas três primeiras linhas

Ao explorar o arquivo no Excel, vemos que a tabela só começa na 4ª linha. Portanto, reler os dados configurando alguns parâmetros nos permite indicar quais linhas pular e qual linha usar como cabeçalho:

#we read the data in again but skill 3 rows this time
df = pd.read_excel("rollingsales_bronx.xls", skiprows = 4, header = [0])

df.head()

dados do Bronx após ajuste de importação

A forma de exibição mudou bastante. Embora pudéssemos limpar após a primeira importação, a exploração economizou muito tempo com poucos ajustes na função de leitura em Python.

Explorar dados é como chegar a uma cena de crime como investigador: primeiro observamos passivamente o que está fora do lugar; a limpeza é o processo ativo de solucionar o caso.

Limpeza de dados

A exploração normalmente anda junto com a limpeza. Depois de descobrir problemas por meios visuais, de agregação ou estatísticos, é hora de corrigir. Nesta fase, dados podem ser removidos, corrigidos ou imputados.

Registros inconsistentes

Um exemplo típico é um formulário em que pessoas informam o gênero: podemos ter formatos diferentes para a mesma coisa, como “M”, “m”, “Male” ou “MALE”; e vendemos “aples”, “apples” ou “APPLES” neste mês? Para detectar, use um gráfico de frequência ou liste os valores distintos da coluna. Operações comuns incluem:

  • Converter strings para minúsculas ou para formato título
  • Remover espaços em branco
  • Renomear colunas

Exemplo em Python: Usando o dataset importado na exploração, repare que os nomes das colunas estão inconsistentes:

dataframe exemplo em Python

Pode não parecer grave, mas é importante tornar os nomes de colunas consistentes. Por exemplo, EASE-MENT tem hífen (-) entre as palavras, enquanto as demais usam espaços.

Parte da limpeza é garantir consistência. Vamos ajustar em duas etapas:

  1. Substituir espaços entre palavras por underline
  2. Converter para formato título
# Extract columns
cols = df.columns

# Create empty list for new column names
new_cols = []

# Iterate over each column name to fix issues
for column in cols:
    # Convert column name to title case
    proper_cols = column.title()
    # Replace spaces and hyphens with underscores
    proper_cols_hyphen = proper_cols.replace(" ", "_")
    clean_col = proper_cols_hyphen.replace("-", "_")
    # Append the cleaned column name to the list
    new_cols.append(clean_col)

# Display the transformed column names
new_cols

# Replace existing columns in the dataframe with the cleaned list
df.columns = new_cols

# Preview the updated dataframe
df.head()

exemplo Python 2

Tipos de dados e conversão

O tipo de dado é como a informação é representada — e informa ao compilador como usá-la. A representação define quais operações são possíveis. Vamos ver os tipos de dados em cada coluna do dataframe do Bronx.

#data types
df.dtypes

Tipos de dados e conversão

Obs.: Note como agora conseguimos acessar nomes de colunas facilmente com o ponto (df.Year_Built).

Tudo parece em ordem, exceto Year_Built, que deveria ser categórica. Embora não seja crítico, ao agregarmos colunas, Year_Built provavelmente entrará na conta.

#Fix Year_Built column
df.Year_Built = df.Year_Built.astype("str")

#Check
df.dtypes

Tipos de dados e conversão 2

Dados ausentes

Às vezes há linhas com valores ausentes; em outras, colunas inteiras podem estar vazias. O que fazer? Ignorar não é opção — é como um telhado com goteira: quando chove, vai vazar.

Valores ausentes têm diferentes representações nas ferramentas: NULL, strings vazias, NaN, NA, #NA etc. O contexto é crucial para lidar com dados ausentes e entender por que faltam. Existem duas abordagens principais:

  • Remoção de dados
  • Imputação de dados

Antes de decidir, avalie os padrões de ausência entre as colunas. Vamos usar técnicas visuais e descritivas:

#extract the column names
cols = df.columns

#plot a heatmap of missing values with seaborn
plt.figure(figsize = (10,5))
sns.heatmap(df[cols].isnull())

Dados ausentes

O gráfico mostra visualmente que:

  • Todos os valores em Ease_ment e quase todos em Apartment_Number estão ausentes
  • As colunas relacionadas a Units e Square_Feet têm ausências espalhadas. Em datasets muito grandes, esse gráfico pode não ser ideal. Outra forma é medir a relevância das ausências em relação ao tamanho do conjunto.
    #Get the percentage of missing values in each column
    missing_pct = round(df.isnull().sum()/len(df) * 100, 1)
    print(missing_pct)
    

Dados ausentes 2

Vamos remover as colunas Ease_Ment e Apartment_Number e depois substituir os valores ausentes nas demais.

#columns with more than 30% missing values
drop_cols = missing_pct[missing_pct > 30].index
#We can drop these columns with greater than 30 percent missing values
df_new = df.drop(columns = drop_cols)

#Extract columns with mising values between 1 and 30%
replace_cols = missing_pct[(missing_pct > 0) & (missing_pct < 30)].index

#Iterate to replace missing values
for col in replace_cols:
    #if column is year built we replace with median otherwise the mean
    if col == "Year_Built":
        df_new.fillna(df_new[col].median(), inplace = True)
    else:
        mean_value = df_new[col].mean()
        df_new.fillna(mean_value, inplace = True)
df_new.isnull().sum() #preview for missing values

Dados ausentes 3

Claro, há muito mais sobre valores ausentes — como no curso da Datacamp Dealing with Missing Values in Python. Datasets diferentes, com tipos e estruturas distintas, exigem abordagens próprias; não existe um caminho único. A imagem abaixo mostra cenários para aplicar exclusão ou imputação.

Dados ausentes 4

Duplicatas

Precisamos garantir uma única fonte da verdade para cada observação. Às vezes há múltiplos registros do mesmo cliente, seja por envio duplo de formulário ou erro de digitação. Independentemente da causa, é preciso consolidar uma versão única e completa da verdade. Isso ajuda o negócio a:

  1. Não desperdiçar tempo e dinheiro segmentando o mesmo cliente duas vezes
  2. Construir uma versão confiável e completa da verdade, permitindo decisões embasadas na análise

Outliers

Outliers são pontos extremos — valores muito baixos ou muito altos que não seguem o padrão do restante, por exemplo:

  • Um cliente com 200 anos de idade
  • Leitura de sensor de 40° Celsius na Antártica

Identificação de outliers Há diferentes técnicas, visuais e estatísticas:

  1. Ordenação do conjunto: ao ordenar dados, é possível identificar outliers rapidamente. Em datasets grandes, essa técnica perde eficiência.

  2. Visualização: boxplots, histogramas e dispersões facilitam a detecção.

  3. Usar z-scores: técnica estatística que quantifica o quão incomum é um valor, assumindo distribuição normal. É o número de desvios-padrão acima/abaixo da média.

Tratamento de outliers Pode envolver remover ou substituir os valores extremos:

  1. Remover outliers: Remover valores abaixo/acima de determinado percentil. Casos típicos:
  2. Quando o dado foi claramente medido de forma incorreta. Por exemplo, um cliente ativo com 200 anos deve ser removido.
  3. Se o outlier não altera o resultado da análise, você pode descartá-lo. Isso também vale quando há poucos outliers em relação ao total.

  4. Substituir outliers: Trocar por média, mediana ou moda. Se a quantidade de outliers é grande, remover pode distorcer o dataset. Nota: a média é sensível a outliers; prefira mediana ou moda.

Verificação de dados

Concluída a limpeza, reavalie a qualidade via exploração. É a validação de que o processo foi correto e completo — garantindo que nada ficou de fora e que seguimos o contexto do dado.

Relatório e automação da limpeza de dados

Relatar é documentar a saúde dos dados após a limpeza e os passos executados. Isso cria um guia para necessidades futuras (reprodutibilidade) e permite automatizar quando necessário.

Automatizar é garantir que a limpeza seja reprodutível. Grande parte da limpeza são scripts reutilizáveis que podem ser reaproveitados com poucos ajustes.

Conclusão

Exploramos a limpeza de dados em profundidade e tudo o que você precisa considerar para um projeto bem-sucedido. É uma fase demorada — profissionais de dados passam cerca de 60% do projeto nela — e é a base que, sozinha, pode determinar o resultado. Dados de fontes diferentes têm necessidades distintas; adapte os processos ao seu caso de uso.

Recursos:

  • As imagens de transformação de dados foram recortadas de uma planilha do Excel disponível aqui
  • O notebook em Python está no DataCamp workspace
Tópicos
Data Analysis
Ciência de dados

Aprenda limpeza de dados com a DataCamp

Curso

Limpeza de dados em Python

4 h
160.2K
Aprenda a diagnosticar e tratar dados sujos e transforme dados brutos em insights precisos.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado
Data Analyst surfing on wave of data

blog

9 Habilidades essenciais do analista de dados: Um guia de carreira abrangente

Aprenda habilidades essenciais de analista de dados, tanto técnicas quanto interpessoais, desde programação em Python até comunicação eficaz, para avançar em sua carreira.
Matt Crabtree's photo

Matt Crabtree

9 min

blog

10 habilidades essenciais em Python que todos os cientistas de dados devem dominar

Todos os cientistas de dados precisam ter experiência em Python, mas quais habilidades são as mais importantes para eles dominarem? Descubra as dez habilidades mais importantes em Python no último resumo.

Thaylise Nakamoto

9 min

blog

A importância dos dados: 5 principais motivos

Por que os dados são importantes? Saiba mais sobre a importância dos dados no mundo atual e descubra alguns cursos para ajudá-lo a aprimorar suas próprias habilidades com dados.
Kurtis Pykes 's photo

Kurtis Pykes

6 min

Tutorial

Principais técnicas para lidar com valores ausentes que todo cientista de dados deve conhecer

Explore várias técnicas para lidar eficientemente com valores ausentes e suas implementações em Python.
Zoumana Keita 's photo

Zoumana Keita

15 min

Tutorial

21 ferramentas essenciais do Python

Aprenda sobre as ferramentas Python essenciais para o desenvolvimento de software, raspagem e desenvolvimento da Web, análise e visualização de dados e aprendizado de máquina.
Abid Ali Awan's photo

Abid Ali Awan

6 min

data-frames-in-python-banner_cgzjxy.jpeg

Tutorial

Pandas Tutorial: DataFrames em Python

Explore a análise de dados com Python. Os DataFrames do Pandas facilitam a manipulação de seus dados, desde a seleção ou substituição de colunas e índices até a remodelagem dos dados.
Karlijn Willems's photo

Karlijn Willems

15 min

Ver MaisVer Mais