fbpx
  • Sobre Mim
  • Cursos
  • Política de Privacidade
  • Contato
Sigmoidal
  • Home
  • Artigos
    • All
    • Carreira
    • Data Science
    • Deep Learning
    • Iniciantes
    • Inteligência Artificial
    • Machine Learning
    • NFT
    • Projetos
    • Python
    • Teoria
    • Tutoriais
    • Visão Computacional
    • Youtube
    NFT e artes criadas por Inteligência Artificial

    NFT e artes criadas por Inteligência Artificial

    Crie um sistema de vigilância com drones e Deep Learning

    Crie um sistema de vigilância com drones e Deep Learning

    Python para análise de ações e investimentos

    Python para análise de ações e investimentos

    Revisão do livro Deep Learning

    Revisão do livro Deep Learning

    Entendendo as árvores de decisão em Machine Learning

    Entendendo as árvores de decisão em Machine Learning

    Gerando amostras para modelos de Deep learning no ArcGIS Pro

    Gerando amostras para modelos de Deep learning no ArcGIS Pro

    Como fazer gráficos rotulados em Python

    Como fazer gráficos rotulados em Python

    7 Livros de Data Science em 2021

    7 Livros de Data Science em 2021

    A faculdade te ensinou tudo, menos como conseguir um emprego.

    A faculdade te ensinou tudo, menos como conseguir um emprego.

    Quanto ganha um Cientista de Dados?

    Quanto ganha um Cientista de Dados?

    Trabalhando com Dados Desbalanceados

    Trabalhando com Dados Desbalanceados

    Detector de Fadiga usando Python

    Detector de Fadiga usando Python

    Trending Tags

    • python
    • data science
    • machine learning
    • deep learning
    • tutoriais
  • Python do Zero
  • Produções Sigmoidal
  • Escola de Data Scienceassine
No Result
View All Result
  • Home
  • Artigos
    • All
    • Carreira
    • Data Science
    • Deep Learning
    • Iniciantes
    • Inteligência Artificial
    • Machine Learning
    • NFT
    • Projetos
    • Python
    • Teoria
    • Tutoriais
    • Visão Computacional
    • Youtube
    NFT e artes criadas por Inteligência Artificial

    NFT e artes criadas por Inteligência Artificial

    Crie um sistema de vigilância com drones e Deep Learning

    Crie um sistema de vigilância com drones e Deep Learning

    Python para análise de ações e investimentos

    Python para análise de ações e investimentos

    Revisão do livro Deep Learning

    Revisão do livro Deep Learning

    Entendendo as árvores de decisão em Machine Learning

    Entendendo as árvores de decisão em Machine Learning

    Gerando amostras para modelos de Deep learning no ArcGIS Pro

    Gerando amostras para modelos de Deep learning no ArcGIS Pro

    Como fazer gráficos rotulados em Python

    Como fazer gráficos rotulados em Python

    7 Livros de Data Science em 2021

    7 Livros de Data Science em 2021

    A faculdade te ensinou tudo, menos como conseguir um emprego.

    A faculdade te ensinou tudo, menos como conseguir um emprego.

    Quanto ganha um Cientista de Dados?

    Quanto ganha um Cientista de Dados?

    Trabalhando com Dados Desbalanceados

    Trabalhando com Dados Desbalanceados

    Detector de Fadiga usando Python

    Detector de Fadiga usando Python

    Trending Tags

    • python
    • data science
    • machine learning
    • deep learning
    • tutoriais
  • Python do Zero
  • Produções Sigmoidal
  • Escola de Data Scienceassine
No Result
View All Result
Sigmoidal
No Result
View All Result
Home Blog

Como Tratar Dados Ausentes com Pandas

Carlos Melo by Carlos Melo
agosto 13, 2019
in Blog, Data Science, Machine Learning, Python, Tutoriais
0
Como Tratar Dados Ausentes com Pandas
1.2k
VIEWS
Compartilhar no LinkedInCompartilhar no FacebookPublicar no Twitter

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 na qualidade e desempenho do seu modelo de Machine Learning

Entretanto, essa não é a realidade do mundo real, onde 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. Aproveita e já se inscreve por lá 🙂

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 os dados (data cleaning) em uma etapa anterior. É 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 de 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 1460 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 te ajudar muito, não apenas pela facilidade, mas porque deixa seu notebook replicável para quem clonar ele.

!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 tem 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 onde 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 onde 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 ele 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 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 nos 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
Previous Post

Como conseguir emprego como Cientista de Dados?

Next Post

Python, Data Science e Deep Learning: agora no YouTube

Carlos Melo

Carlos Melo

Piloto da Força Aérea Brasileira por 16 anos, Mestre em Ciências e Tecnologias Aeroespaciais pelo ITA e criador do Sigmoidal.

Next Post
Python, Data Science e Deep Learning: agora no YouTube

Python, Data Science e Deep Learning: agora no YouTube

Deixe um comentário Cancelar resposta

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

Fique Conectado

  • 20.5k Followers
  • Trending
  • Comments
  • Latest
Como Tratar Dados Ausentes com Pandas

Como Tratar Dados Ausentes com Pandas

agosto 13, 2019
NFT e artes criadas por Inteligência Artificial

NFT e artes criadas por Inteligência Artificial

junho 17, 2022
Crie um sistema de vigilância com drones e Deep Learning

Crie um sistema de vigilância com drones e Deep Learning

junho 11, 2022
Redes Neurais Multicamadas com Python e Keras

Redes Neurais Multicamadas com Python e Keras

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

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

10
Machine Learning para a Detecção de Câncer de Mama

Machine Learning para a Detecção de Câncer de Mama

4
NLP para analisar Rony Meisler, CEO da Reserva

NLP para analisar Rony Meisler, CEO da Reserva

3
Redes Neurais Convolucionais com Python

Redes Neurais Convolucionais com Python

2
NFT e artes criadas por Inteligência Artificial

NFT e artes criadas por Inteligência Artificial

junho 17, 2022
Crie um sistema de vigilância com drones e Deep Learning

Crie um sistema de vigilância com drones e Deep Learning

junho 11, 2022
Python para análise de ações e investimentos

Python para análise de ações e investimentos

junho 7, 2022
Revisão do livro Deep Learning

Revisão do livro Deep Learning

junho 1, 2022

Recent News

NFT e artes criadas por Inteligência Artificial

NFT e artes criadas por Inteligência Artificial

junho 17, 2022
Crie um sistema de vigilância com drones e Deep Learning

Crie um sistema de vigilância com drones e Deep Learning

junho 11, 2022
Python para análise de ações e investimentos

Python para análise de ações e investimentos

junho 7, 2022
Revisão do livro Deep Learning

Revisão do livro Deep Learning

Sigmoidal

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

Fique Conectado

Navegar por Categoria

  • Artigos
  • Blog
  • Carreira
  • Cursos
  • Data Science
  • Deep Learning
  • Destaques
  • Iniciantes
  • Inteligência Artificial
  • Livros
  • Machine Learning
  • NFT
  • Produções Originais
  • Projetos
  • Python
  • Teoria
  • Tutoriais
  • Visão Computacional
  • Youtube

Artigos Recentes

NFT e artes criadas por Inteligência Artificial

NFT e artes criadas por Inteligência Artificial

junho 17, 2022
Crie um sistema de vigilância com drones e Deep Learning

Crie um sistema de vigilância com drones e Deep Learning

junho 11, 2022
  • Sobre Mim
  • Cursos
  • Política de Privacidade
  • Contato

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

No Result
View All Result
  • Home
  • Sobre Mim
  • Cursos e Livros
  • Contato

© 2022 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