Lidando com Valores Ausentes
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:
- Remover as linhas que contêm valores ausentes;
- Preencher as 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.
12345import 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 cada, indicando a presença de dados ausentes.
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()
.
12345import 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 contendo valores ausentes podem ser exibidas com:
df[df.isna().any(axis=1)]
12345import 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 da variável alvo ('species'
) e de '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
.
123456import 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.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.13
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:
- Remover as linhas que contêm valores ausentes;
- Preencher as 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.
12345import 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 cada, indicando a presença de dados ausentes.
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()
.
12345import 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 contendo valores ausentes podem ser exibidas com:
df[df.isna().any(axis=1)]
12345import 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 da variável alvo ('species'
) e de '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
.
123456import 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.
Obrigado pelo seu feedback!