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.