欢迎来到 Python 基础入门 Day26!今天,我们将学习如何使用 Pandas 和 Seaborn 进行 探索性数据分析(EDA),帮助我们快速了解数据结构、特性和潜在关系,为后续分析和建模提供基础。
目录
- 探索性数据分析简介
- 数据加载与基本查看
- 数据统计与清洗
- 使用 Seaborn 进行 EDA
- 小结与练习
一、探索性数据分析简介
探索性数据分析(Exploratory Data Analysis, EDA)是一种数据分析方法,通过可视化和统计技术探索数据的基本特性,主要包括:
- 数据分布(如均值、中位数、方差)
- 缺失值和异常值的检查
- 各特征之间的关系
- 类别分布和数值分布
我们将在 Pandas 的数据操作功能与 Seaborn 的可视化能力结合下实现这些目标。
二、数据加载与基本查看
2.1 加载数据
我们将使用 Pandas 加载示例数据集 penguins
。
import pandas as pd
import seaborn as sns
# 加载 Seaborn 提供的示例数据集
penguins = sns.load_dataset("penguins")
print(penguins.head())
输出:
species | island | bill_length_mm | bill_depth_mm | flipper_length_mm | body_mass_g | sex |
---|---|---|---|---|---|---|
Adelie | Torgersen | 39.1 | 18.7 | 181 | 3750 | Male |
Adelie | Torgersen | 39.5 | 17.4 | 186 | 3800 | Female |
… | … | … | … | … | … | … |
2.2 基本信息
# 查看数据基本信息
print(penguins.info())
# 检查数值列的统计信息
print(penguins.describe())
三、数据统计与清洗
3.1 检查缺失值
# 查看每列的缺失值数量
print(penguins.isnull().sum())
3.2 填补或删除缺失值
# 填充缺失值(以中位数填充数值型数据)
penguins["bill_length_mm"].fillna(penguins["bill_length_mm"].median(), inplace=True)
# 删除包含缺失值的行
penguins.dropna(inplace=True)
3.3 检查类别数据
# 查看类别列的唯一值
print(penguins["species"].unique())
print(penguins["island"].value_counts())
四、使用 Seaborn 进行 EDA
4.1 类别分布可视化
通过柱状图展示企鹅物种分布:
sns.countplot(data=penguins, x="species", palette="pastel")
plt.title("Penguin Species Count")
plt.show()
4.2 数值分布可视化
通过直方图和密度图查看企鹅体重分布:
sns.histplot(data=penguins, x="body_mass_g", kde=True, color="blue")
plt.title("Penguin Body Mass Distribution")
plt.show()
4.3 数值之间的关系
通过散点图查看体重和鳍长之间的关系:
sns.scatterplot(data=penguins, x="flipper_length_mm", y="body_mass_g", hue="species", style="sex")
plt.title("Body Mass vs. Flipper Length")
plt.show()
4.4 成对关系图
成对关系图可以同时展示数值型变量之间的两两关系:
sns.pairplot(data=penguins, hue="species", diag_kind="kde", palette="muted")
plt.show()
4.5 热图查看相关性
# 计算相关性矩阵
corr = penguins.corr(numeric_only=True)
# 绘制热图
sns.heatmap(corr, annot=True, cmap="coolwarm", fmt=".2f")
plt.title("Correlation Heatmap")
plt.show()
五、小结与练习
今日总结
- 使用 Pandas 查看数据集基本信息,检查数据质量。
- 对缺失值进行填补或删除。
- 使用 Seaborn 可视化数据分布、类别统计以及数值关系。
- 掌握成对关系图与相关性热图的应用。
今日练习
- 加载
tips
数据集,检查数据中是否有缺失值并进行处理。 - 可视化
tips
数据集中不同性别顾客的小费分布情况(直方图)。 - 使用成对关系图展示
iris
数据集中的变量关系,并分析其中的特性。 - 计算
penguins
数据集中不同物种的体重均值,并绘制条形图展示结果。
下一节预告:在 Day27 中,我们将学习如何将 Pandas 和 Matplotlib/Seaborn 结合,用于生成数据报告和动态仪表板!敬请期待! 😊