Seaborn 如何处理缺失数据

Seaborn 如何处理缺失数据

Seaborn主要是一个可视化库,不提供直接处理缺失数据的方法。然而,Seaborn与pandas无缝合作,而pandas是Python中流行的数据处理库,提供了处理缺失数据的强大工具,我们可以使用Seaborn来可视化清洗后的数据。

通过将pandas处理缺失数据的数据处理能力与Seaborn的可视化能力相结合,我们可以清洗数据并创建有意义的可视化图表,从我们的数据集中获得洞察力。

以下是使用pandas处理缺失数据和使用Seaborn可视化清洗数据的逐步指南。

导入所需的库

首先,我们需要在Python工作环境中导入所有所需的库。

import seaborn as sns
import pandas as pd

将数据集加载/创建到 pandas DataFrame 中

现在我们可以使用 DataFrame() 函数创建数据集,或者使用 pandas 库的 read_csv() 函数加载数据集。在本文中,我们将使用 DataFrame() 函数创建自己的数据集。

示例

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)

输出

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

标识缺失数据

Pandas提供了在DataFrame中标识缺失数据的方法。‘ isnull() ’函数返回与输入形状相同的DataFrame,其中数据缺失的地方为‘ True ’值,数据存在的地方为’ False ’值。

由于我们的数据集中没有缺失值,在数据集的所有行中都将表示为False。

示例

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)

我们还可以使用其他方法,比如 ‘info() ‘或 describe() ,来获取DataFrame中缺失数据的摘要。

输出

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

处理缺失数据

一旦我们找出了缺失数据,我们可以根据我们的数据和进行的分析选择如何处理它。处理缺失数据的一些常用方法如下。

去除缺失数据

如果缺失数据相对较小且不影响整体分析,我们可以使用 ‘dropna()’ 方法删除包含缺失数据的行或列。

示例

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

填补缺失数据

如果缺失数据很重要,删除它将导致有价值的信息丢失,可以使用合理的估计值来填补缺失值。Pandas提供了各种填补方法,例如使用平均值、中位数、众数或自定义值。

示例

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())

输出

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

在像scikit-learn这样的库中,有更高级的插补技术可用,我们可以与pandas一起使用来处理缺失数据。

使用Seaborn可视化清理过的数据

一旦我们处理了缺失数据,我们可以使用Seaborn来可视化清理过的数据。Seaborn提供了广泛的绘图函数,可以接受pandas的DataFrame作为输入。例如,当我们想要在处理了缺失数据后创建一个分类变量的条形图时,可以使用下面的代码。

示例

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()

输出

Seaborn 如何处理缺失数据

我们可以使用各种Seaborn绘图函数来探索和可视化我们清理过的数据,从而获得洞察力并有效地传达我们的发现。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程