Pesquisa de site

Como lidar com dados ausentes usando o Seaborn?


Seaborn é principalmente uma biblioteca de visualização e não fornece métodos diretos para lidar com dados ausentes. No entanto, o Seaborn funciona perfeitamente com o pandas, que é uma biblioteca popular de manipulação de dados em Python e fornece ferramentas poderosas para lidar com dados ausentes, e podemos então usar o Seaborn para visualizar os dados limpos.

Ao combinar os recursos de manipulação de dados do pandas para lidar com dados ausentes com os recursos de visualização do Seaborn, podemos limpar nossos dados e criar visualizações significativas para obter insights de nosso conjunto de dados.

Aqui está um guia passo a passo sobre como lidar com dados ausentes usando pandas e visualizar os dados limpos usando Seaborn

Importe as bibliotecas necessárias

Primeiramente, temos que importar todas as bibliotecas necessárias em nosso ambiente de trabalho python.

import seaborn as sns
import pandas as pd

Carregar/criar conjunto de dados em um DataFrame do pandas

Agora podemos criar o conjunto de dados usando a função DataFrame() ou podemos carregar o conjunto de dados usando a função read_csv() da biblioteca pandas. Neste artigo estamos criando nosso próprio conjunto de dados usando a função DataFrame().

Exemplo

import seaborn as sns
import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
         'Age': [25, 30, 35],
         'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
res = df.head()

print(res)

Saída

      Name  Age  Salary
0    Alice   25   50000
1      Bob   30   60000
2  Charlie   35   70000

Identifique dados ausentes

Pandas fornece métodos para identificar dados ausentes em um DataFrame. A função 'isnull()' retorna um DataFrame com o mesmo formato da entrada, com valores 'True' onde os dados estão faltando e 'False' valores onde os dados estão presentes.

Como não há valores ausentes em nosso conjunto de dados, False será representado em todas as linhas do conjunto de dados.

Exemplo

import seaborn as sns
import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
         'Age': [25, 30, 35],
         'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
missing_data = df.isnull()
res = missing_data.head()

print(res)

Também podemos usar outros métodos como 'info()' ou 'describe()' para obter um resumo dos dados ausentes no DataFrame.

Saída

    Name    Age  Salary
0  False  False   False
1  False  False   False
2  False  False   False

Lidar com dados ausentes

Depois de identificarmos os dados faltantes, podemos escolher como lidar com eles com base em nossos dados e na análise que queremos realizar. Algumas abordagens comuns para lidar com dados ausentes são as seguintes.

Removendo dados ausentes

Se os dados faltantes forem relativamente pequenos e não afetarem a análise geral, podemos remover as linhas ou colunas que contêm dados faltantes usando o método 'dropna()'.

Exemplo

import seaborn as sns
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'],
         'Age': [25, 30, 35],
         'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
missing_data = df.isnull()
res = missing_data.head()
df_cleaned = df.dropna() #this drops the rows
df_cleaned = df.dropna(axis=1) #this drops the columns

Imputando dados ausentes

Se os dados em falta forem significativos e a sua remoção resultar na perda de informações valiosas, podemos imputar ou preencher os valores em falta com estimativas sensatas. O Pandas fornece vários métodos de imputação, como uso de média, mediana, moda ou valores personalizados.

Exemplo

import seaborn as sns
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'],
         'Age': [25, 30, 35],
         'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
missing_data = df.isnull()
res = missing_data.head()
df_cleaned = df.dropna() #this drops the rows
df_cleaned = df.dropna(axis=1) #this drops the columns
# Impute missing values with mean
df['Age'].fillna(df['Age'].mean(), inplace=True)
# Impute missing values with custom value
df['Age'].fillna('N/A', inplace=True)
print(df.head())

Saída

      Name  Age  Salary
0    Alice   25   50000
1      Bob   30   60000
2  Charlie   35   70000

Existem técnicas de imputação mais avançadas disponíveis em bibliotecas como o scikit-learn, que podemos usar em conjunto com o pandas para lidar com dados ausentes.

Visualize os dados limpos usando Seaborn

Depois de tratarmos os dados ausentes, podemos usar o Seaborn para visualizar os dados limpos. Seaborn fornece uma ampla gama de funções de plotagem que aceitam DataFrames do pandas como entrada. Por exemplo, quando queremos criar um gráfico de barras de uma variável categórica após tratar os dados ausentes, a linha de código abaixo pode ser usada.

Exemplo

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

data = {'Name': ['Alice', 'Bob', 'Charlie'],
         'Age': [25, 30, 35],
         'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
missing_data = df.isnull()
res = missing_data.head()
df_cleaned = df.dropna() #this drops the rows
df_cleaned = df.dropna(axis=1) #this drops the columns
# Impute missing values with mean
df['Age'].fillna(df['Age'].mean(), inplace=True)
# Impute missing values with custom value
df['Age'].fillna('N/A', inplace=True)
print(df.head())

sns.countplot(x='Salary', data=df_cleaned)
plt.show()

Saída

Podemos usar várias funções de plotagem do Seaborn para explorar e visualizar nossos dados limpos, permitindo-nos obter insights e comunicar nossas descobertas de forma eficaz.

Artigos relacionados: