Tratamento de Dados Ausentes com Pandas

empreteiro






Tratamento de Dados com Pandas

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:

df.dropna()

A função dropna() remove linhas ou colunas que contenham valores ausentes.

Parâmetros importantes:

  • axis: 0 para linhas, 1 para colunas
  • how: ‘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:

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:

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.


Set vs Frozenset

Mamute congelado em uma geleira

Em Python, tanto set quanto frozenset são estruturas de dados que armazenam coleções não ordenadas de elementos únicos. A principal diferença está na mutabilidade.

Set (Mutável)

Um set é uma coleção mutável – você pode adicionar, remover e modificar elementos após a criação.

Características:

  • Mutável
  • Não ordenado
  • Elementos únicos
  • Não indexado

Exemplo de uso:

Frozenset (Imutável)

Um frozenset é uma versão imutável do set – após a criação, não pode ser modificado.

Características:

  • Imutável
  • Não ordenado
  • Elementos únicos
  • Pode ser usado como chave de dicionário

Exemplo de uso:

Vantagens do Set:

  • Pode ser modificado conforme necessário
  • Útil para operações que requerem alterações frequentes
  • Métodos como add(), remove(), discard(), etc.

Desvantagens do Set:

  • Não pode ser usado como chave de dicionário
  • Não é hasheável
  • Menos seguro em contextos que requerem imutabilidade

Vantagens do Frozenset:

  • Imutável e seguro para uso em contextos que requerem imutabilidade
  • Pode ser usado como chave de dicionário
  • É hasheável

Desvantagens do Frozenset:

  • Não pode ser modificado após a criação
  • Menos flexível para operações dinâmicas
  • Não possui métodos de modificação

Relação entre Set e Frozenset

É possível converter entre set e frozenset conforme necessário:

Guia de Decisão: Quando usar cada um

Use set quando:

  • Você precisa modificar a coleção frequentemente
  • Não precisa usar a coleção como chave de dicionário
  • Está trabalhando com dados que mudam dinamicamente

Use frozenset quando:

  • Você precisa de uma coleção imutável
  • Quer usar a coleção como chave de dicionário
  • Está trabalhando com dados que não devem mudar
  • Precisa de segurança contra modificações acidentais

Conclusão

Tanto set quanto frozenset são úteis em diferentes contextos. A escolha entre eles depende principalmente se você precisa de mutabilidade ou imutabilidade. Enquanto os sets são flexíveis e mutáveis, os frozensets oferecem imutabilidade e a capacidade de serem usados como chaves em dicionários.