13.5 Processamento e Limpeza de Dados com Pandas: Tratamento de Valores Faltantes

O processamento e a limpeza de dados são etapas cruciais na jornada analítica com Python, especialmente quando se utiliza a biblioteca Pandas. Dados reais frequentemente vêm com problemas como valores faltantes, que podem distorcer análises e modelos de machine learning se não forem devidamente tratados. Neste capítulo, exploraremos métodos eficientes para lidar com valores faltantes usando Pandas.

Identificando Valores Faltantes

Antes de tratar os valores faltantes, precisamos identificá-los. Pandas oferece várias funções para isso. A função isnull() (ou seu alias isna()) pode ser aplicada a um DataFrame ou Series para retornar um mesmo tipo de objeto contendo valores booleanos, onde True indica a presença de um valor faltante.


import pandas as pd

# Suponha que df seja um DataFrame do Pandas
valores_faltantes = df.isnull()

Agora, com um mapa booleano de valores faltantes, podemos usar métodos como sum() para contar quantos valores faltantes existem em cada coluna.


contagem_valores_faltantes = df.isnull().sum()

Remoção de Valores Faltantes

Uma abordagem direta é remover qualquer linha ou coluna que contenha um valor faltante. Isso pode ser feito com o método dropna(). Por padrão, ele remove todas as linhas com pelo menos um valor faltante.


df_limpo = df.dropna()

Para remover colunas, você pode usar o argumento axis=1.


df_limpo_colunas = df.dropna(axis=1)

Embora seja simples, essa abordagem pode descartar muitos dados úteis, especialmente se os valores faltantes estiverem espalhados por todo o conjunto de dados.

Imputação de Valores Faltantes

Uma técnica mais sofisticada é a imputação, que envolve substituir valores faltantes por estimativas. Uma imputação comum é usar a média ou mediana de uma coluna.


df['coluna'].fillna(df['coluna'].mean(), inplace=True)

O método fillna() é versátil e permite também a imputação com valores constantes, ou até mesmo utilizando métodos como bfill (back fill) ou ffill (forward fill) para preencher valores faltantes usando o próximo ou o anterior valor não faltante na coluna, respectivamente.


df['coluna'].fillna(method='ffill', inplace=True)

Tratamento Condicional de Valores Faltantes

Em alguns casos, o tratamento de valores faltantes pode ser mais complexo e depender do contexto. Por exemplo, pode-se querer imputar diferentes valores com base em outra coluna do DataFrame.


df['coluna'] = df.apply(
    lambda row: row['outra_coluna'] if pd.isnull(row['coluna']) else row['coluna'],
    axis=1
)

Uso de Interpolação

Para dados sequenciais ou temporais, a interpolação pode ser uma técnica poderosa. Pandas oferece o método interpolate(), que pode estimar valores faltantes usando diferentes métodos, como linear ou polinomial.


df_interpolado = df.interpolate(method='linear')

Considerações sobre Dados Categóricos

Quando se trata de dados categóricos, a imputação pode exigir uma abordagem diferente. Uma estratégia pode ser substituir os valores faltantes pela moda (valor mais frequente) da coluna.


moda = df['coluna_categorica'].mode()[0]
df['coluna_categorica'].fillna(moda, inplace=True)

Validação Pós-Tratamento

Após o tratamento de valores faltantes, é importante validar se o processo foi bem-sucedido. Isso pode ser feito verificando novamente a presença de valores faltantes e, se necessário, avaliando o impacto das imputações nas análises subsequentes.


assert df.notnull().all().all(), "Ainda existem valores faltantes no DataFrame!"

Conclusão

O tratamento de valores faltantes é uma etapa fundamental no processamento de dados com Pandas. A escolha da técnica apropriada depende da natureza dos dados e do objetivo da análise. Remoção, imputação e interpolação são métodos comuns, mas é essencial aplicá-los de forma criteriosa para evitar distorções nos resultados finais. Com a prática, você se tornará mais confiante para tomar decisões informadas sobre como lidar com os inevitáveis valores faltantes em seus conjuntos de dados.

Este capítulo fornece as ferramentas necessárias para começar a tratar valores faltantes com eficiência. À medida que você avança em sua jornada analítica com Python, continuará a descobrir e aprimorar técnicas para garantir a integridade e a qualidade dos seus dados.

Agora responda o exercício sobre o conteúdo:

Qual método do Pandas pode ser utilizado para preencher valores faltantes usando o valor não faltante anterior na mesma coluna?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Processamento e Limpeza de Dados com Pandas: Remoção de Duplicatas

Próxima página do Ebook Gratuito:

53Processamento e Limpeza de Dados com Pandas: Remoção de Duplicatas

5 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto