EDA:数据可视化与统计分析

主题3:探索性数据分析(EDA)

探索性数据分析(Exploratory Data Analysis,EDA)是数据科学中非常重要的一个步骤,其目的是通过可视化和统计学方法来了解数据的基本特征,找出数据中的规律、趋势、异常值以及变量之间的关系。EDA通常在数据清洗后进行,是数据分析过程的前奏,为后续的建模和分析提供了必要的背景信息。

EDA 的核心任务包括:数据摘要、数据分布的可视化、变量之间关系的探索、异常值与缺失值的检查等。


1. 数据摘要与概述

在进行 EDA 时,我们首先需要对数据集进行初步的了解,获取数据的基本信息和统计量。这一步是所有后续分析的基础。

1.1 查看数据维度与列信息

使用 shapeinfo() 方法查看数据集的维度、列类型以及缺失值等信息。

方法功能返回值类型示例代码
shape获取数据的维度(行数,列数)元组 (行数, 列数)df.shape
info()获取数据的基本信息(列名,类型,缺失值等)打印输出(无返回值)df.info()

示例:

print(df.shape)  # 输出数据的维度
df.info()  # 输出数据的列信息,包括每列的类型和缺失值情况

1.2 查看数据的前几行与后几行

查看数据的前几行或后几行,帮助我们快速了解数据的基本结构与样本内容。

方法功能返回值类型示例代码
head(n)查看前 n 行数据DataFramedf.head(5)
tail(n)查看后 n 行数据DataFramedf.tail(5)

示例:

print(df.head(5))  # 查看数据的前5行
print(df.tail(5))  # 查看数据的后5行

1.3 数据类型与描述性统计量

获取每个数值型特征的描述性统计信息,如均值、标准差、最小值、四分位数和最大值等。

方法功能返回值类型示例代码
describe()获取数据的描述性统计量DataFramedf.describe()
mean()获取列的均值单个数值df['A'].mean()
std()获取列的标准差单个数值df['A'].std()

示例:

df.describe()  # 获取数据的描述性统计量
print(df['A'].mean())  # 获取 A 列的均值

2. 数据分布可视化

数据分布的可视化能够帮助我们理解数据的整体特性、偏态情况以及是否符合某些统计假设。常见的可视化方法有直方图、箱型图等。

2.1 直方图

直方图用于显示单个变量的分布情况,可以帮助我们识别变量的偏态、峰度以及是否存在异常值。

方法功能参数返回值
hist()绘制单变量的直方图bins=数量绘制的直方图

示例:

import matplotlib.pyplot as plt
df['A'].hist(bins=30)  # 绘制 A 列的直方图
plt.show()  # 显示直方图

2.2 箱型图

箱型图能够展示数据的分布、中心位置、离散程度及异常值,适用于检查数据的对称性与异常值。

方法功能参数返回值
boxplot()绘制箱型图vert=False绘制的箱型图

示例:

df.boxplot(column='A')  # 绘制 A 列的箱型图
plt.show()  # 显示箱型图

2.3 密度图

密度图可以直观地显示数据的概率分布,比直方图更平滑,适合查看变量的分布情况。

方法功能参数返回值
plot(kind='density')绘制密度图kind='density'绘制的密度图

示例:

df['A'].plot(kind='density')  # 绘制 A 列的密度图
plt.show()  # 显示密度图

3. 变量之间的关系探索

探索变量之间的关系对于理解数据中的潜在模式和趋势至关重要。常见的分析方法有散点图、相关系数等。

3.1 散点图

散点图适用于展示两个数值型变量之间的关系,帮助我们识别变量之间的线性关系、非线性关系或无关关系。

方法功能参数返回值
scatter()绘制散点图x, y(x, y 为列名)绘制的散点图

示例:

df.plot.scatter(x='A', y='B')  # 绘制 A 列与 B 列的散点图
plt.show()  # 显示散点图

3.2 相关系数矩阵

相关系数矩阵是一个用于衡量变量之间相关性的表格,常用的相关系数有皮尔逊相关系数、斯皮尔曼等级相关系数等。

方法功能参数返回值
corr()计算数值型变量的相关系数矩阵method='pearson'相关系数矩阵

示例:

correlation_matrix = df.corr()  # 计算相关系数矩阵
print(correlation_matrix)

3.3 热力图

热力图可以直观地展示相关系数矩阵,通过颜色的深浅反映变量之间的相关性。

方法功能参数返回值
heatmap()绘制热力图annot=True绘制的热力图

示例:

import seaborn as sns
sns.heatmap(df.corr(), annot=True)  # 绘制相关系数的热力图
plt.show()  # 显示热力图

4. 缺失值与异常值可视化

在 EDA 过程中,缺失值与异常值的可视化能够帮助我们直观地发现数据中的问题,进一步制定清洗策略。

4.1 缺失值可视化

使用 missingno 库可以对缺失值进行可视化,帮助我们了解缺失值的模式。

方法功能参数返回值
missingno.matrix()可视化缺失值模式figsize=(10, 6)缺失值矩阵图

示例:

import missingno as msno
msno.matrix(df)  # 绘制缺失值矩阵图
plt.show()  # 显示图形

4.2 异常值可视化

可以使用箱型图或点图来直观展示数据中的异常值。

方法功能参数返回值
boxplot()绘制箱型图vert=False绘制的箱型图

示例:

df.boxplot(column='A')  # 绘制 A 列的箱型图,查看异常值

版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:Python 数据科学系列——探索性数据分析

本文链接:https://www.sshipanoo.com/blog/ai/python-data-science/Python探索性数据分析/

本文最后一次更新为 天前,文章中的某些内容可能已过时!