O tratamento de dados ausentes é uma etapa crucial na análise de dados. No Pandas, existem várias funções para lidar com valores faltantes, sendo df.info(), df.dropna() e df.fillna(valor) algumas das mais importantes.
Funções Principais para Dados Ausentes
df.info()
A função info() fornece um resumo conciso do DataFrame, incluindo:
- Número de entradas não nulas por coluna
- Tipo de dados de cada coluna
- Uso de memória
É útil para identificar rapidamente colunas com valores ausentes.
Exemplo de uso:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# Importar pandas library(pandas) # Criar DataFrame com valores ausentes df <- data.frame( 'A' = c(1, 2, NA, 4), 'B' = c('a', NA, 'c', 'd'), 'C' = c(NA, NA, 3, 4) ) # Visualizar informações do DataFrame print(df$info()) |
df.dropna()
A função dropna() remove linhas ou colunas que contenham valores ausentes.
Parâmetros importantes:
axis: 0 para linhas, 1 para colunashow: ‘any’ (remove se algum valor for NA) ou ‘all’ (remove se todos os valores forem NA)subset: colunas específicas para verificar valores NA
Exemplo de uso:
|
1 2 3 4 5 6 7 8 |
# Remover linhas com pelo menos um valor ausente df_sem_na <- df$dropna() # Remover linhas onde todos os valores são ausentes df_sem_todos_na <- df$dropna(how='all') # Remover colunas com pelo menos um valor ausente df_sem_colunas_na <- df$dropna(axis=1) |
df.fillna(valor)
A função fillna() preenche valores ausentes com um valor específico.
Pode receber como argumento:
- Um valor escalar (preenche todos os NAs com esse valor)
- Um dicionário mapeando colunas para valores
- Métodos como ‘ffill’ (forward fill) ou ‘bfill’ (backward fill)
Exemplo de uso:
|
1 2 3 4 5 6 7 8 9 10 |
# Preencher todos os valores ausentes com 0 df_preenchido <- df$fillna(0) # Preencher valores ausentes com a média da coluna media_A <- mean(df$A, na.rm=TRUE) df$A <- df$A$fillna(media_A) # Preencher com diferentes valores para cada coluna valores_preenchimento <- list('A'=0, 'B'='desconhecido', 'C'=median(df$C, na.rm=TRUE)) df_preenchido <- df$fillna(value=valores_preenchimento) |
Comparativo entre as Abordagens
Vantagens de df.dropna()
- Remove completamente os dados problemáticos
- Mantém a integridade dos dados restantes
- Simples de implementar
Desvantagens de df.dropna()
- Pode resultar em perda significativa de dados
- Pode introduzir viés se os valores ausentes não forem completamente aleatórios
- Não é adequado quando há muitos valores ausentes
Vantagens de df.fillna()
- Preserva o tamanho do dataset
- Mantém outras variáveis inalteradas
- Permite uso de diferentes estratégias de preenchimento
Desvantagens de df.fillna()
- Pode distorcer distribuições estatísticas
- Pode introduzir viés se o método de preenchimento for inadequado
- Valores preenchidos podem não representar a realidade
Conclusão
O tratamento de dados ausentes é fundamental para uma análise precisa. A escolha entre dropna() e fillna() depende do contexto:
- Use
info()para diagnosticar a extensão dos dados ausentes - Prefira
dropna()quando a perda de dados for aceitável e os valores ausentes forem escassos - Use
fillna()com estratégias adequadas quando precisar manter todas as observações
Lembre-se que não existe uma solução única – a abordagem deve ser adaptada a cada conjunto de dados e pergunta de pesquisa.
Referências
- Pandas Documentation: Handling Missing Data
- McKinney, W. (2017). Python for Data Analysis.
- VanderPlas, J. (2016). Python Data Science Handbook.
GitHub