Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Lidando com Valores Ausentes | Pré-Processamento de Dados com Scikit-Learn
Introdução ao Aprendizado de Máquina com Python

Lidando com Valores Ausentes

Deslize para mostrar o menu

Apenas um número limitado de modelos de aprendizado de máquina consegue lidar com valores ausentes, portanto, é necessário verificar o conjunto de dados para garantir que não restem lacunas. Se houver valores ausentes, eles podem ser tratados de duas maneiras:

  • Remoção das linhas que contêm valores ausentes;
  • Preenchimento das células vazias com valores substitutos, um processo conhecido como imputação.

Identificação de Valores Ausentes

Para exibir informações gerais sobre o conjunto de dados e verificar a existência de valores ausentes, pode-se utilizar o método .info() de um DataFrame.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())

O conjunto de dados possui 344 entradas, mas as colunas 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' e 'sex' contêm menos de 344 valores não nulos, indicando a presença de dados ausentes.

Note
Nota

Null é outro nome para valores ausentes.

Para identificar o número de valores ausentes em cada coluna, aplique o método .isna() e, em seguida, utilize .sum().

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())

Linhas que contêm valores ausentes podem ser exibidas com: df[df.isna().any(axis=1)]

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])

Remoção de Linhas

A primeira e a última linhas contêm apenas os valores de destino ('species') e 'island', fornecendo informações insuficientes para serem úteis. Essas linhas podem ser removidas mantendo apenas aquelas com menos de dois valores NaN e reatribuindo-as ao df.

123456
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))

Em contraste, as linhas restantes contêm informações úteis, com valores NaN aparecendo apenas na coluna 'sex'. Em vez de remover essas linhas, os valores ausentes podem ser imputados. Uma abordagem comum é utilizar o transformador SimpleImputer, que será abordado no próximo capítulo.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 3
some-alt