探索性数据分析(EDA)
主题3:探索性数据分析(EDA)
探索性数据分析(Exploratory Data Analysis,EDA)是数据科学中非常重要的一个步骤,其目的是通过可视化和统计学方法来了解数据的基本特征,找出数据中的规律、趋势、异常值以及变量之间的关系。EDA通常在数据清洗后进行,是数据分析过程的前奏,为后续的建模和分析提供了必要的背景信息。
EDA 的核心任务包括:数据摘要、数据分布的可视化、变量之间关系的探索、异常值与缺失值的检查等。
1. 数据摘要与概述
在进行 EDA 时,我们首先需要对数据集进行初步的了解,获取数据的基本信息和统计量。这一步是所有后续分析的基础。
1.1 查看数据维度与列信息
使用 shape
和 info()
方法查看数据集的维度、列类型以及缺失值等信息。
方法 | 功能 | 返回值类型 | 示例代码 |
---|---|---|---|
shape |
获取数据的维度(行数,列数) | 元组 (行数, 列数)
|
df.shape |
info() |
获取数据的基本信息(列名,类型,缺失值等) | 打印输出(无返回值) | df.info() |
示例:
print(df.shape) # 输出数据的维度
df.info() # 输出数据的列信息,包括每列的类型和缺失值情况
1.2 查看数据的前几行与后几行
查看数据的前几行或后几行,帮助我们快速了解数据的基本结构与样本内容。
方法 | 功能 | 返回值类型 | 示例代码 |
---|---|---|---|
head(n) |
查看前 n 行数据 | DataFrame | df.head(5) |
tail(n) |
查看后 n 行数据 | DataFrame | df.tail(5) |
示例:
print(df.head(5)) # 查看数据的前5行
print(df.tail(5)) # 查看数据的后5行
1.3 数据类型与描述性统计量
获取每个数值型特征的描述性统计信息,如均值、标准差、最小值、四分位数和最大值等。
方法 | 功能 | 返回值类型 | 示例代码 |
---|---|---|---|
describe() |
获取数据的描述性统计量 | DataFrame | df.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 |
绘制的箱型图 |
示例:
```python df.boxplot(column=’A’) # 绘制 A 列的箱型图,查看异常值
版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。
(采用 CC BY-NC-SA 4.0 许可协议进行授权)
本文标题:《 Python探索性数据分析(EDA) 》
本文链接:http://0.0.0.0:3015/ai/Python%E6%8E%A2%E7%B4%A2%E6%80%A7%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90.html
本文最后一次更新为 天前,文章中的某些内容可能已过时!