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. Caso existam 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, 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, 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 que contêm 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 de alvo ('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.
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. Caso existam 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, 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, 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 que contêm 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 de alvo ('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.
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!