欢迎来到 Python 基础入门 Day27!今天我们将学习如何结合 Pandas 和 Matplotlib/Seaborn 来生成数据报告,并探索动态仪表板的基本概念和实现方法。
目录
- 数据报告的基本流程
- 生成静态可视化报告
- 使用 Pandas Profiling 快速生成报告
- 动态仪表板简介与示例
- 小结与练习
一、数据报告的基本流程
数据报告的核心目标是通过结构化的方式展示数据的主要特征,常用步骤包括:
- 数据描述:通过统计量了解数据的范围、分布和缺失情况。
- 数据分布:使用可视化工具展示特定特征的分布或关系。
- 特征关联:展示变量间的相关性或交互作用。
- 总结与导出:生成便于分享的静态或动态报告文件。
我们将基于 penguins
数据集完成以上内容。
二、生成静态可视化报告
2.1 基本描述
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 加载示例数据集
penguins = sns.load_dataset("penguins")
# 描述数据集基本信息
print(penguins.info())
print(penguins.describe())
2.2 分类特征的可视化
以条形图展示各岛屿的企鹅数量:
sns.countplot(data=penguins, x="island", palette="Set2")
plt.title("Penguin Count by Island")
plt.show()
2.3 数值特征的分布
通过直方图和密度图展示体重分布:
sns.histplot(data=penguins, x="body_mass_g", kde=True, bins=20, color="blue")
plt.title("Penguin Body Mass Distribution")
plt.show()
2.4 相关性分析
通过热图查看数值变量的相关性:
corr = penguins.corr(numeric_only=True)
sns.heatmap(corr, annot=True, cmap="coolwarm", fmt=".2f")
plt.title("Correlation Heatmap")
plt.show()
三、使用 Pandas Profiling 快速生成报告
Pandas Profiling 是一个快速生成数据报告的工具。
3.1 安装 Pandas Profiling
pip install pandas-profiling
3.2 生成数据报告
from pandas_profiling import ProfileReport
# 创建报告
profile = ProfileReport(penguins, title="Penguins Data Report", explorative=True)
# 保存为 HTML 文件
profile.to_file("penguins_report.html")
打开生成的 HTML 文件即可查看包含详细统计信息和可视化的交互式数据报告。
四、动态仪表板简介与示例
动态仪表板通过交互式工具(如 Dash、Streamlit 或 Plotly)实时展示数据。这里我们以 Streamlit 为例:
4.1 安装 Streamlit
pip install streamlit
4.2 创建仪表板应用
在项目目录中创建文件 app.py
:
import streamlit as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 加载数据集
penguins = sns.load_dataset("penguins")
# 设置标题
st.title("Penguin Dataset Dashboard")
# 显示数据集信息
st.subheader("Dataset Overview")
st.write(penguins.head())
# 分类变量可视化
st.subheader("Penguins Count by Island")
fig, ax = plt.subplots()
sns.countplot(data=penguins, x="island", palette="Set3", ax=ax)
st.pyplot(fig)
# 数值变量分布
st.subheader("Body Mass Distribution")
fig, ax = plt.subplots()
sns.histplot(data=penguins, x="body_mass_g", kde=True, bins=20, color="blue", ax=ax)
st.pyplot(fig)
4.3 运行应用
使用命令启动 Streamlit 应用:
streamlit run app.py
然后访问命令行提示的本地地址,即可体验交互式仪表板!
五、小结与练习
今日总结
- 学习了生成静态数据报告的流程和方法。
- 使用 Pandas Profiling 快速生成数据报告。
- 了解了动态仪表板的基本原理,并通过 Streamlit 创建了简单的仪表板应用。
今日练习
- 使用 Pandas Profiling 分析
titanic
数据集并生成报告。 - 在 Streamlit 中实现
titanic
数据集中乘客年龄分布的交互式可视化。 - 创建一个带有多个图表的仪表板,展示数据集的多维特征关系(如热图、散点图等)。
下一节预告:在 Day28 中,我们将学习如何使用 Python 和 Jupyter Notebook 自动化生成数据报告,并与团队共享分析结果。敬请期待! 😊