Olá, Pablo! Tudo bom?
Realmente o tratamento dos dados é um processo que faz toda diferença na análise das informações.
Vou citar aqui algumas bibliotecas que já estão muito bem consolidadas nos campos de Análise e Engenharia de Dados, vamos lá?!
Pandas
É a biblioteca Python queridinha do pessoal de Dados, usada para manipulação de dados tabulares (DataFrames) que também conta com funções e métodos de limpeza de dados. Muito usada para filtragem, transformação e agregação. Métodos úteis:
fillna()
dropna()
replace()
NumPy
Também é uma biblioteca Python que fornece manipulação de arrays e operações numéricas eficientes. Usada para tratar dados numéricos e aplicar normalização e substituições. Recursos úteis:
isnan()
unique()
nan_to_num()
Scikit-learn
Um módulo do Python usado para o pré-processamento de dados para modelos de Machine Learning. Utilizado também para padronizar variáveis, lidar com valores ausentes e transformar dados categóricos. Ferramentas úteis:
MinMaxScaler
OneHotEncoder
StandardScaler
Exemplo prático
Vou usar o Google Colab para simular uma base de dados com alguns dados ausentes:
import numpy as np
import pandas as pd
# Criando o DataFrame com dados fictícios
dados = {
'id': range(1, 21),
'nome': ['Ana', 'Bruno', 'Carlos', 'Daniela', 'Eduardo', None, 'Fernanda', 'Gabriel', None, 'Helena',
'Igor', 'Joana', 'Karla', 'Lucas', 'Marina', None, 'Natália', 'Otávio', 'Paula', 'Renato'],
'idade': [28, 35, 22, None, 40, 19, 33, None, 31, 25, 45, 38, None, 29, 34, 36, None, 30, 27, None],
'salario': [3000, 4200, None, 3900, 5000, 3200, None, 4100, 3600, 3400,
None, 4700, 3100, None, 3900, 2800, 4300, None, 3600, 4000]
}
df = pd.DataFrame(dados)
print("DataFrame original com valores ausentes:")
df
Resultado:

Repare que esses valores ausentes (None
/NaN
) podem afetar a análise e aprendizagem em modelos.
Uma forma de tratar esses dados seria usando o método fillna()
para:
- Preencher nomes ausentes com "Desconhecido"
- Preencher idades ausentes com a média das idades
- Preencher salários ausentes com a mediana dos salários
O código para isso ficaria assim:
media_idade = round(df['idade'].mean(), 0)
df_tratado = df.fillna({
'nome': 'Desconhecido',
'idade': media_idade,
'salario': df['salario'].median()
})
print("\nDataFrame após o tratamento com fillna():")
df_tratado
Observações:
fillna()
aplica os valores de substituição por coluna, de forma vetorizada e eficiente.media_idade = round(df['idade'].mean(), 0)
calcula a média das idades ignorando o NaN
.df['salario'].median()
calcula a mediana dos salários para suavizar o impacto de outliers.
Resultado:

Dessa forma temos uma base de dados tratada para melhor ser analisada ou usada em modelos!
Espero ter ajudado e fico à disposição se precisar.
Abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado