fbpx
Sigmoidal
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
  • English
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
Sigmoidal
Sem Resultado
Ver Todos Resultados

Como Tratar Dados Ausentes com Pandas

Carlos Melo por Carlos Melo
agosto 13, 2019
em Data Science, Python, Tutoriais
4
641
COMPARTILHAMENTOS
21.4k
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?

Compartilhar45Compartilhar256Enviar
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

Curso de Pós-Graduação em Data Science
Data Science

Vale a pena fazer uma Pós-Graduação em Data Science?

por Carlos Melo
janeiro 20, 2025
Review do Livro “Mãos à obra: Aprendizado de Máquina com Scikit-Learn, Keras & TensorFlow”
Livros

Review do Livro “Mãos à obra: Aprendizado de Máquina com Scikit-Learn, Keras & TensorFlow”

janeiro 18, 2025
Carlos Melo e Sérgio Sacani – Ciência Sem Fim
Youtube

Carlos Melo e Sérgio Sacani – Ciência Sem Fim

por Carlos Melo
janeiro 16, 2025
Carlos Melo da Pós Graduação em Data Science do Sigmoidal
Aeroespacial

Oportunidades no Setor Espacial para Cientistas de Dados

por Carlos Melo
janeiro 15, 2025
Visão Computacional

Processamento de Nuvens de Pontos com Open3D e Python

por Carlos Melo
janeiro 2, 2025
Próximo Post
Python, Data Science e Deep Learning: agora no YouTube

Python, Data Science e Deep Learning: agora no YouTube

Comentários 4

  1. Marcos Vinícius says:
    5 anos atrás

    Boa tarde, excelente o conteúdo, apesar de ser iniciante no python, aprendi muito com ele.
    Porém, no meu caso gostaria de somar os valores de duas colunas de preços do DataFrame e gerar uma coluna com o valor Total.
    Eu fiz da seguinte forma inicialmente: dataframe[‘valor total’] = dataframa[‘valor1’] + dataframe[‘valor2’], porém o retorno foi NaN em todas as linhas da nova coluna, pois em cada linha existe um NaN ou para valor1 ou para valor2, então eu percebi que quando se tem um valor NaN o pandas desconsidera todos os outros e o resultado é NaN. Por exemplo: 5,0 + NaN = NaN, gostaria de saber como faço para o Pandas interpretar o NaN como 0(zero) e fazer com que 5,0 + NaN = 5,0 para eu poder ter o valor total correto.

    Responder
  2. Bruna says:
    4 anos atrás

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

    Responder
  3. Mauricio says:
    1 ano atrás

    Muito legal
    Mas uma dúvida, depois que eu tratei os dados
    Como chama4 este no datafrane no pandas?

    Responder
    • Carlos Melo Carlos Melo says:
      4 meses atrás

      Então, normalmente você estará trabalhando com uma cópia do DataFrame, e alterando aquela linha/coluna especificamente. Algumas vezes, por meio de um apply() com uma função, por exemplo.

      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 *

Pós-Graduação em Data Science Pós-Graduação em Data Science Pós-Graduação em Data Science

Mais Populares

  • Introdução ao MediaPipe e Pose Estimation

    Introdução ao MediaPipe e Pose Estimation

    450 compartilhamentos
    Compartilhar 180 Tweet 113
  • Equalização de Histograma com OpenCV e Python

    112 compartilhamentos
    Compartilhar 45 Tweet 28
  • ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

    385 compartilhamentos
    Compartilhar 154 Tweet 96
  • Geometria da Formação de Imagens: Matrizes, Transformações e Sistemas de Coordenadas

    367 compartilhamentos
    Compartilhar 147 Tweet 92
  • Redes Neurais Convolucionais com Python

    92 compartilhamentos
    Compartilhar 37 Tweet 23
  • Em Alta
  • Comentários
  • Mais Recente
Como Tratar Dados Ausentes com Pandas

Como Tratar Dados Ausentes com Pandas

agosto 13, 2019
Como usar o DALL-E 2 para gerar imagens a partir de textos

Como usar o DALL-E 2 para gerar imagens a partir de textos

dezembro 25, 2022
Introdução ao MediaPipe e Pose Estimation

Introdução ao MediaPipe e Pose Estimation

julho 15, 2023

ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

abril 10, 2023
Como Analisar Ações da Bolsa com Python

Como Analisar Ações da Bolsa com Python

15
Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

13
Como Aprender Data Science?

Como Aprender Data Science?

9
Qual o Cenário de Data Science no Brasil hoje?

Qual o Cenário de Data Science no Brasil hoje?

8
DeepSeek vazamento de dados de usuários

DeepSeek: Vazamento de dados expõe dados de usuários

fevereiro 1, 2025
DeepSeek R1 vs OpenAI o1 – Qual é o Melhor Modelo de IA

DeepSeek R1 vs OpenAI o1 – Qual é o Melhor Modelo de IA?

janeiro 25, 2025
Trump Anuncia Investimento de US$ 500 Bilhões em Infraestrutura de IA

Trump Anuncia Investimento de US$ 500 Bilhões em Infraestrutura de IA

janeiro 22, 2025
Trump revoga decreto de Biden sobre regulação de Inteligência Artificial

Trump revoga decreto de Biden sobre regulação de Inteligência Artificial

janeiro 21, 2025

Seguir

  • 🇺🇸 Green Card por Habilidade Extraordinária em Data Science e Machine Learning

Após nossa mudança para os EUA, muitas pessoas me perguntaram como consegui o Green Card tão rapidamente. Por isso, decidi compartilhar um pouco dessa jornada.

O EB-1A é um dos vistos mais seletivos para imigração, sendo conhecido como “The Einstein Visa”, já que o próprio Albert Einstein obteve sua residência permanente através desse processo em 1933.

Apesar do apelido ser um exagero moderno, é fato que esse é um dos vistos mais difíceis de conquistar. Seus critérios rigorosos permitem a obtenção do Green Card sem a necessidade de uma oferta de emprego.

Para isso, o aplicante precisa comprovar, por meio de evidências, que está entre os poucos profissionais de sua área que alcançaram e se mantêm no topo, demonstrando um histórico sólido de conquistas e reconhecimento.

O EB-1A valoriza não apenas um único feito, mas uma trajetória consistente de excelência e liderança, destacando o conjunto de realizações ao longo da carreira.

No meu caso específico, após escrever uma petição com mais de 1.300 páginas contendo todas as evidências necessárias, tive minha solicitação aprovada pelo USCIS, órgão responsável pela imigração nos Estados Unidos.

Fui reconhecido como um indivíduo com habilidade extraordinária em Data Science e Machine Learning, capaz de contribuir em áreas de importância nacional, trazendo benefícios substanciais para os EUA.

Para quem sempre me perguntou sobre o processo de imigração e como funciona o EB-1A, espero que esse resumo ajude a esclarecer um pouco mais. Se tiver dúvidas, estou à disposição para compartilhar mais sobre essa experiência! #machinelearning #datascience
  • 🚀Domine a tecnologia que está revolucionando o mundo.

A Pós-Graduação em Visão Computacional & Deep Learning prepara você para atuar nos campos mais avançados da Inteligência Artificial - de carros autônomos a robôs industriais e drones.

🧠 CARGA HORÁRIA: 400h
💻 MODALIDADE: EAD
📅 INÍCIO DAS AULAS: 29 de maio

Garanta sua vaga agora e impulsione sua carreira com uma formação prática, focada no mercado de trabalho.

Matricule-se já!

#deeplearning #machinelearning #visãocomputacional
  • Green Card aprovado! 🥳 Despedida do Brasil e rumo à nova vida nos 🇺🇸 com a família!
  • Haverá sinais… aprovado na petição do visto EB1A, visto reservado para pessoas com habilidades extraordinárias!

Texas, we are coming! 🤠
  • O que EU TENHO EM COMUM COM O TOM CRUISE??

Clama, não tem nenhuma “semana” aberta. Mas como@é quinta-feira (dia de TBT), olha o que eu resgatei!

Diretamente do TÚNEL DO TEMPO: Carlos Melo &Tom Cruise!
  • Bate e Volta DA ITÁLIA PARA A SUÍÇA 🇨🇭🇮🇹

Aproveitei o dia de folga após o Congresso Internacional de Astronáutica (IAC 2024) e fiz uma viagem “bate e volta” para a belíssima cidade de Lugano, Suíça.

Assista ao vlog e escreve nos comentários se essa não é a cidade mais linda que você já viu!

🔗 LINK NOS STORIES
  • Um paraíso de águas transparentes, e que fica no sul da Suíça!🇨🇭 

Conheça o Lago de Lugano, cercado pelos Alpes Suíços. 

#suiça #lugano #switzerland #datascience
  • Sim, você PRECISA de uma PÓS-GRADUAÇÃO em DATA SCIENCE.
  • 🇨🇭Deixei minha bagagem em um locker no aeroporto de Milão, e vim aproveitar esta última semana nos Alpes suíços!
  • Assista à cobertura completa no YT! Link nos stories 🚀
  • Traje espacial feito pela @axiom.space em parceria com a @prada 

Esse traje será usados pelos astronautas na lua.
para acompanhar as novidades do maior evento sobre espaço do mundo, veja os Stories!

#space #nasa #astronaut #rocket
  • INTERNATIONAL ASTRONAUTICAL CONGRESS - 🇮🇹IAC 2024🇮🇹

Veja a cobertura completa do evento nos DESTAQUES do meu perfil.

Esse é o maior evento de ESPAÇO do mundo! Eu e a @bnp.space estamos representando o Brasil nele 🇧🇷

#iac #space #nasa #spacex
  • 🚀 @bnp.space is building the Next Generation of Sustainable Rocket Fuel.

Join us in transforming the Aerospace Sector with technological and sustainable innovations.
  • 🚀👨‍🚀 Machine Learning para Aplicações Espaciais

Participei do maior congresso de Astronáutica do mundo, e trouxe as novidades e oportunidade da área de dados e Machine Learning para você!

#iac #nasa #spacex
  • 🚀👨‍🚀ACOMPANHE NOS STORIES

Congresso Internacional de Astronáutica (IAC 2024), Milão 🇮🇹
  • Projeto Aeroespacial do final de semana!👨‍🚀
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

  • Aeroespacial
  • Artigos
  • Blog
  • Carreira
  • Cursos
  • Data Science
  • Deep Learning
  • Destaques
  • Entrevistas
  • IA Generativa
  • Livros
  • Machine Learning
  • Notícias
  • Python
  • Teoria
  • Tutoriais
  • Visão Computacional
  • Youtube

Navegar por Tags

camera calibration carreira chatgpt cientista de dados cnn computer vision Cursos dados desbalanceados data science data science na prática decision tree deep learning gpt-3 histograma IA generativa image formation inteligência artificial jupyter kaggle keras machine learning matplotlib mnist nft openai opencv overfitting pandas profissão python redes neurais redes neurais convolucionais regressão linear regressão logística salário scikit-learn seaborn sklearn tensorflow titanic tutorial visão computacional vídeo youtube árvore de decisão

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional 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

Sem Resultado
Ver Todos Resultados
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
  • English

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.