fbpx
Sigmoidal
  • Home
  • CursosNOVO
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
  • Home
  • CursosNOVO
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
Sigmoidal
Sem Resultado
Ver Todos Resultados
Home Artigos Data Science

Como Tratar Dados Ausentes com Pandas

Carlos Melo por Carlos Melo
agosto 13, 2019
em Data Science
1
Como Tratar Dados Ausentes com Pandas
515
COMPARTILHAMENTOS
17.2k
VIEWS
Publicar no LinkedInCompartilhar no FacebookCompartilhar no Whatsapp

Dados ausentes são uma das maiores dificuldades da etapa exploratória dos dados em um projeto de Data Science.

Durante a fase em que estamos aprendendo, lendo livros e seguindo tutoriais, não temos tanto esse tipo de trabalho, pois os dados já vêm mais “redondinhos”.

Tratando valores ausentes (missing data) com Pandas do Python.
Saber o que fazer com dados ausentes (missing data) vai impactar diretamente a qualidade e desempenho do seu modelo de Machine Learning

Entretanto, essa não é a realidade do mundo real, em que a gente vai se deparar com uma infinidade de problemas e missing data.

Excluir, completar ou ignorar?! Qual a melhor abordagem? Hoje nós vamos falar sobre as principais técnicas para lidar com dados ausentes e entender o trade-off entre elas.

Para ver o código completo, acompanhar este artigo ou testar no seu computador, acesse meu Github no botão abaixo.

Ah, seguindo uma promessa antiga que eu vivia fazendo no Instagram, resolvi começar um canal no YouTube!

Agora você pode acompanhar este artigo em formato de vídeo também. Aproveite e já se inscreva por lá 🙂

https://www.youtube.com/watch?v=Zd5tdVRqESk

Identificando dados ausentes

Algoritmos de Machine Learning não são capazes de lidar com valores ausentes (missing data). Se você já tentou rodar, viu que a mensagem de erro é bem clara em relação a isso.

Identificar valores ausentes em Data Science com Pandas do Python.
Identificar valores ausentes é algo que você deve fazer logo no começo do seu projeto de Data Science.

Um valor ausente é facilmente identificado nos campos da sua estrutura de dados como NaN. Para seu modelo rodar sem problemas, você tem que limpar, em uma etapa anterior, os dados (data cleaning). É aí que surge a dúvida: o que eu faço com eles?

Não existe uma resposta 100% correta, pois cada abordagem tem suas vantagens e desvantagens, mas vamos dar uma olhada naquelas que são mais usadas.

Para isso, vamos importar um conjunto de dados do Kaggle para usar como exemplo.

Importando os dados

Vou usar o conjunto de dados House Prices: Advanced Regression Techniques neste exemplo, pois ele apresenta várias colunas com valores inexistentes.

Nesse dataset, temos 80 variáveis (colunas) e 1.460 entradas (linhas) no arquivo train.csv. Eu vou baixar apenas esse arquivo e vou usar a (Kaggle API)(https://www.kaggle.com/docs/api), uma vez que ela me permite baixar o arquivo diretamente do Terminal.

Baixaremos este dataset por meio da API do Kaggle.

Se você não conhece a API, olhe a documentação no Github [https://github.com/Kaggle/kaggle-api]. Aprender a usar essa API vai ajudá-lo muito, não apenas pela facilidade, mas porque deixa seu notebook replicável para quem o clonar.

!mkdir -p data
!kaggle competitions download -c house-prices-advanced-regression-techniques -f train.csv -p data

Identificando dados ausentes

A primeira coisa que você tem que saber quando lida com um conjunto de dados novos é a quantidade e proporção dos missing values.

Identificando valores ausentes (missing values) com Pandas do Python.
Saiba identificar corretamente os valores ausentes em um conjunto de dados com a biblioteca Pandas.

Para identificar valores ausentes, por colunas, você pode usar:

  • df.describe() para retornar um resumo estatístico das variáveis numéricas
  • df.info() para dar um resumo de valores não nulos encontrados
  • df.isnull().sum() para retornar a soma dos valores nulos encontrados

Usando essa última opção, vamos ver as 10 colunas com mais valores ausentes para esse dataset.

Lidando com dados ausentes

Como eu falei lá em cima, não existe uma resposta 100% correta ou 100% errada sobre como você deve tratar os valores ausentes do seu conjunto de dados.

Toda escolha gera uma renúncia. Você tem que estar ciente disso e testar o que vai se adequar melhor àquela situação.

Vou passar aqui alguns dos métodos mais frequentementes usados por cientistas de dados, e como você poderia aplicar esses métodos nos dados que acabamos de importar.

Excluir valores ausentes

Esta é uma decisão mais radical, e deve ser feita apenas em casos em que não haverá impacto significativo no modelo. Ao eliminar uma linha inteira, você joga fora um monte de informação que poderia ser extremamente importante.

Eu uso essa opção apenas quando meu dataset é consideravelmente grande e a quantidade de valores ausentes é relativamente insignificante.

Excluir valores ausentes com Pandas do Python.
Ao excluir valores ausentes, você elimina também linhas ou colunas, jogando fora informações que poderiam ser importantes.

Para fazer isso, você vai usar o método df.dropna(). Esse método é direto e remove os valores NaN encontrados no DataFrame.

Por padrão, se você não informar o eixo, serão eliminadas todas as linhas relativas à celula contendo o valor ausente (df.dropna(axis=0)). 

Caso você deseje eliminar uma coluna inteira em que existam NaN, você deve informar explicitamente com df.dropna(axis=1)

No exemplo abaixo, todos os valores NaN da coluna GarageFinish serão eliminados. Compare o shape antes e depois.

Preencher valores ausentes

Esta abordagem é a mais utilizada, pois você não joga fora informação útil. Aqui, a dúvida que você vai ter é em relação a qual valor usar para preencher os dados faltantes.

Valores ausentes, preenchendo com Pandas e Python.
Normalmente, preencher valores ausentes é a melhor decisão.

Existem técnicas avançadas que são combinadas com o preenchimento de valores, como, por exemplo, analisar correlações ou mesmo construir um modelo preditivo para missing values.

Entretanto, uma abordagem direta e simples consiste em substituir os NaN pela mediana da coluna. Isso é feito mediante o método df.fillna(), informando o valor desejado como argumento.

Vamos extrair a mediana da coluna LotFrontage e preencher os valores faltantes com ela.

Usar valor mais frequente

Para preencher missing values no último exemplo, usamos a mediana da coluna. Entretanto, caso a variável fosse categórica (e não numérica), poderíamos verificar qual o valor mais frequente e usar ele no preenchimento.

Para identificar o valor mais frequente, basta usar o método value_counts(), extrair o maior valor e informar esse como argumento de fillna().

Como você pode aplicar esses métodos e melhorar suas análises de Data Science?

Eu vivo falando, no meu Instagram, sobre a importância da fase de análise de dados em um projeto de Data Science.

Aquilo que diferencia um cientista de dados é a sua capacidade de entender, explorar e tratar os dados da melhor maneira possível.

Em datasets reais, não tenha dúvida de que você vai se deparar com muita inconsistência, lançamentos errados, bases diferentes e muitos valores ausentes.

Saber o que fazer com esses valores vai aumentar muito o desempenho do seu algoritmo de Machine Learning e os seus resultados.

Aproveite para começar a aplicar os métodos que você viu aqui nos seus projetos. Que tal testar esses métodos com os dados do Desafio do Titanic?

Tags: dados ausentesdata cleaningdata explorationedananpandaspython
Post Anterior

Como conseguir emprego como Cientista de Dados?

Próximo Post

Python, Data Science e Deep Learning: agora no YouTube

Carlos Melo

Carlos Melo

Engenheiro de Visão Computacional graduado em Ciências Aeronáuticas pela Academia da Força Aérea (AFA) e Mestre em Engenharia Aeroespacial pelo Instituto Tecnológico de Aeronáutica (ITA).

Relacionado Artigos

Entrevista com Mário Filho: como conquistar uma vaga no exterior
Data Science

Entrevista com Mário Filho: como conquistar uma vaga no exterior

por Equipe Sigmoidal
julho 25, 2023
Data Science no exterior - como fazer uma Cover Letter
Inglês

Como escrever uma Cover Letter poderosa para Data Science

por Rafael Duarte
janeiro 8, 2023
GESTÃO DE DADOS: aprenda Data Science ou pague o preço de uma decisão errada | PrimoCast com Thiago Nigro
Data Science

Aprenda Data Science ou pague o preço de uma decisão errada

por Carlos Melo
janeiro 5, 2023
Como a França usou Inteligência Artificial para detectar 20 mil piscinas
Deep Learning

Como a França usou Inteligência Artificial para detectar 20 mil piscinas

por Carlos Melo
dezembro 19, 2022
ChatGPT: A Inteligência Artificial que vai escrever seus códigos
Artigos

ChatGPT: A Inteligência Artificial que vai escrever seus códigos

por Carlos Melo
dezembro 18, 2022
Próximo Post
Python, Data Science e Deep Learning: agora no YouTube

Python, Data Science e Deep Learning: agora no YouTube

Comentários 1

  1. Avatar Bruna says:
    2 anos atrás

    Parabéns pelo conteúdo, muito didático, obrigada!

    Responder

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Destaques Sigmoidal

Detector de Fadiga usando Python

Detector de Fadiga usando Python

outubro 6, 2020
Aprenda Python e se destaque no mercado

Aprenda Python e se destaque no mercado

julho 17, 2022
NFT e artes criadas por Inteligência Artificial

NFT e artes criadas por Inteligência Artificial

junho 17, 2022
Especialização em Visão Computacional Especialização em Visão Computacional Especialização em Visão Computacional

Seguir

  • Camera Tracking, Reconstrução 3D e a Arte da Visão 🎥👁️‍🗨️

O “camera tracking” é uma técnica que permite a análise e reprodução do movimento da câmera em filmagens 2D. 

Esta análise fornece dados vitais sobre a posição e orientação da câmera ao longo do tempo, sendo essencial para a integração de elementos 3D virtuais em visuais 2D. 

A minha jornada acadêmica levou-me ao coração da engenharia de visão computacional, onde explorei tópicos cruciais como lens distortion, camera calibration e image processing. Dediquei-me a técnicas avançadas, abrangendo desde a utilização de filtros Gaussianos, conversão de imagens para grayscale até algoritmos de keypoint detection. 

No decorrer de meus estudos, tive a chance de trabalhar com métodos clássicos, como “Harris Corner Detection”, e também com abordagens mais contemporâneas como ORB, além de descritores como SIFT, SURF e BRISK.

Mas apesar da minha formação predominantemente técnica, centrada no mundo dos modelos quantitativos e da modelagem matemática, identifiquei um diferencial valioso na trilha da visão computacional.

🎨 Esse diferencial foi a capacidade de não se limitar apenas ao lado técnico. Ao contrário, busquei uma fusão entre a precisão técnica e a sensibilidade artística.

Compreendi que a verdadeira inovação surge quando se une o rigor técnico à visão criativa. Nessa intersecção, a arte e a ciência dançam juntas, produzindo resultados que são ao mesmo tempo precisos e emocionalmente impactantes.

Como o escritor A. D. Sertillanges expressou tão eloquentemente, nossa vocação como seres humanos exige que primeiro estejamos profundamente enraizados em nossa humanidade, viajando com confiança e solidez:

💬 “Toda ciência, quando cultivada isoladamente, não é apenas incompleta, mas também repleta de riscos.”

Serve como um lembrete constante de que dentro de cada tarefa computacional e linha de código existe uma miríade de histórias, prontas para serem reveladas e compartilhadas. 

#machinelearning #visãocomputacional
  • 🤖Você já testou essa ferramenta? 

Prece mentira, mas você pode gravar um vídeo seu agora mesmo, e subir nesse site para ele dublar para inglês e várias outras línguas! 🇺🇸🇪🇸🇧🇷🇩🇪

E não apenas isso! Ele sincroniza inclusive os seus lábios para ficar o mais real possível. 

O que você achou? Que tal testar agora mesmo e me mandar?

#machinelearning #inteligenciaartificial
  • ‘Eu nasci assim, eu cresci assim, vou sempre usar arquivos CSV…’ 🎶

Será mesmo? Se a síndrome de Gabriela te prende aos antigos e gigantes arquivos CSV, é hora de repensar! 🤔

Calma, não me entenda mal. Eu uso arquivos CSV para muitas coisas, mesmo! Mas permita-me apresentar um formato que já é bem conhecido pelos engenheiros de dados, mas que, por algum motivo, ainda não é muito famoso entre os cientistas de dados.

O principal problema do CSV é sua estrutura. Eles são armazenados como uma lista de linhas (conhecido como orientado a linhas), o que causa duas grandes complicações: eles são lentos para consultar e, para complicar ainda mais, SQL e CSV simplesmente não se dão bem.

Agora, entre em cena o Parquet: um formato orientado a colunas. Diferentemente dos CSVs, ele organiza seus dados por colunas, o que facilita e agiliza a consulta.

Além disso, é um formato de código aberto, licenciado sob Apache, o que o torna uma opção atrativa não apenas pela sua eficiência, mas também pela flexibilidade e transparência. Engenheiros de dados já se beneficiam das vantagens do Parquet há algum tempo, então por que os cientistas de dados não dariam uma chance também?

Se você é um cientista de dados e ainda não experimentou o Parquet, talvez seja o momento de se aventurar. E aí, já conhecia essa alternativa? Deixe seus comentários! 🚀

#machinelearning #datascience  #visaocomputacional
  • Eu não aprendi a estudar do dia para a noite.

Foram anos de aprimoramento e busca contínua por um método que me permitisse aprender qualquer coisa sozinho.

Nessa sequência de stories eu conto um pouco da minha trajetória, passando pela AFA, ITA e aprendizado de línguas. 

Se você ainda não tem o hábito da leitura, mas gostaria de aprender qualquer coisa rapidamente, como autodidata, você não pode perder a live de hoje. 

🔴AULA AO VIVO (hoje, às 20 horas)

✅Como criar uma rotina de estudo
✅Como criar resumos e notas de revisão
✅Como manter o foco e a concentração
✅Técnicas de Ultra-Aprendizado

Clique no link dos stories e ative a notificação da aula!
  • 📚Ao contrário do que o senso comum pode te induzir a pensar, você não pode querer apenas estudar livros técnicos. 

Ler e memorizar demandam a construção de múltiplas habilidades em diferentes dimensões. Afinal, você precisa crescer não apenas na vida profissional, mas também na humana, espiritual e familiar. 

No entanto, a escolha de livros errados podem prejudicar perigosamente a formação do conhecimento intelectual.

Por esse motivo, aqui vai uma sugestão de livros para aqueles que querem começar uma vida de estudos. 

E se você quiser aprender mais sobre como melhorar sua memória, elaborar resumos da maneira correta e manter o foco na leitura, mande uma mensagem por direct com a palavra “ESTUDO”. 

Depois que você enviar a palavra “estudo”, eu vou te encaminhar o link da aula exclusiva que eu farei sobre o assunto. 

Agora me diz, quais desses livros você já leu? Ou está na fila para leitura?

#leitura #estudos #machinelearning #computervision
  • ORB-SLAM é um sistema SLAM (Localização e Mapeamento Simultâneos) de última geração que utiliza uma combinação de métodos baseados em características e métodos diretos para alcançar desempenho em tempo real em diversas plataformas. Foi concebido por pesquisadores da Universidade de Zaragoza, Espanha, e agora é amplamente adotado tanto na academia quanto na indústria.

O nome ORB-SLAM deriva do seu uso de características Oriented FAST e Rotated BRIEF (ORB) para detectar e combinar pontos-chave em imagens. Essas características, juntamente com outras técnicas como fechamento de loop e otimização de pose, garantem uma localização e mapeamento robustos e precisos.

Graças à sua combinação de métodos baseados em características e diretos, juntamente com suas capacidades em tempo real e compatibilidade versátil de plataforma, ORB-SLAM destaca-se como um recurso inestimável para profissionais em visão computacional e robótica.

Ansioso para aprender como implementar o ORB-SLAM 3, desde sua instalação até a execução do sistema usando seus dados? Acesse o blog do sigmoidal e veja o tutorial com o passo a passo que eu preparei.

https://sigmoidal.ai

#visãocomputacional #machinelearning #slam #opencv
  • Filhos não são um direito, mas um dom de Deus. E hoje fomos abençoados com o nascimento da Bettina. 

Já te amamos muito, minha Pycotinha!
  • Sorria, você está sendo filmado (e analisado pela Visão Computacional)! Estimação de velocidade, fluxo óptico de pedestres e veículos, identificação de objetos abandonados, análise de comportamentos, cruzamento de dados com a base da polícia... quais outras possibilidades você enxerga?
Instagram Youtube LinkedIn Twitter
Sigmoidal

O melhor conteúdo técnico de Data Science, com projetos práticos e exemplos do mundo real.

Seguir no Instagram

Categorias

  • Artigos
  • Blog
  • Carreira
  • Colunistas
  • Cursos
  • Data Science
  • Deep Learning
  • Destaques
  • Entrevistas
  • Inglês
  • Iniciantes
  • Inteligência Artificial
  • Livros
  • Machine Learning
  • Notícias
  • Outros
  • Projetos
  • Python
  • Teoria
  • Tutoriais
  • Visão Computacional
  • Youtube

Navegar por Tags

camera calibration cancer carreira cientista de dados cnn computer vision Cursos dados desbalanceados data science data science na prática decision tree deep learning gis gpt-3 healthcare image formation iniciantes jupyter kaggle keras machine learning matplotlib medicina mnist nft opencv pandas personal branding portfólio profissão python redes neurais redes neurais convolucionais regressão logística salário seaborn sklearn tensorflow titanic tutorial vagas visão computacional vídeo youtube árvore de decisão

© 2023 Sigmoidal - Aprenda Data Science e Python na prática.

Sem Resultado
Ver Todos Resultados
  • Home
  • Cursos de Visão Computacional, Data Science e Python
  • Artigos
  • YouTube
  • Sobre Mim
  • Contato

© 2023 Sigmoidal - Aprenda Data Science e Python na prática.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

Aprenda Python do Zero

50% Off

Oferta exclusiva de aniversário do Sigmoidal. Inscreva-se no curso Python do Zero hoje mesmo.

QUERO APROVEITAR O DESCONTO