综合实践:用Python操作数据库并可视化
使用 Python 连接数据库;插入并查询学生成绩数据;使用 Pandas 和 Matplotlib 将数据可视化。电商分析:统计商品销量、用户购买趋势;日志分析:分析服务器日志、访问趋势;AI 项目:将数据库数据作为训练集输入模型。Python 与数据库的结合,为数据分析、可视化和智能应用提供了无限可能。
·
在前面几篇文章中,我们已经学习了数据库的基础知识,了解了 SQL 与 NoSQL 的区别。本篇文章将进入到一个综合实践环节,带你使用 Python 连接数据库、操作数据,并将结果可视化。这不仅能加深对数据库操作的理解,也能提升数据分析与展示的能力。
一、为什么要用 Python 操作数据库?
数据库是数据存储的核心,而 Python 是一门强大的编程语言,拥有丰富的库,可以轻松实现数据采集、存储与分析。
通过 Python,我们可以:
- 批量插入和查询数据,提升效率;
- 使用 Pandas 将数据库结果转为数据表;
- 借助 Matplotlib、Seaborn、ECharts 等工具进行可视化。
换句话说,Python 能够让“数据获取 → 数据处理 → 数据展示”形成一个完整的闭环。
二、准备工作
在开始之前,我们需要准备好以下工具:
-
安装数据库(MySQL 或 SQLite)
- 如果你是新手,可以直接用轻量级的 SQLite(无需额外安装)。
- 如果你想更贴近实际项目,可以使用 MySQL。
-
安装 Python 库
pip install pymysql sqlalchemy pandas matplotlib
pymysql
:连接 MySQL 数据库sqlalchemy
:数据库 ORM 框架,便于统一管理数据库连接pandas
:数据处理工具matplotlib
:可视化库
三、用 Python 连接数据库并操作数据
这里我们以 MySQL 为例,假设数据库中有一张 学生成绩表 student_score
,包含字段:
- id(学号)
- name(姓名)
- subject(学科)
- score(分数)
1. 数据库连接
import pymysql
import pandas as pd
import matplotlib.pyplot as plt
from sqlalchemy import create_engine
# 创建数据库连接
engine = create_engine("mysql+pymysql://root:123456@localhost:3306/testdb")
print("✅ 数据库连接成功!")
2. 插入数据
# 构造示例数据
data = [
(1, "张三", "数学", 85),
(2, "李四", "数学", 92),
(3, "王五", "数学", 76),
(4, "赵六", "数学", 89),
(5, "孙七", "数学", 95)
]
# 插入到数据库
with engine.connect() as conn:
conn.execute("DROP TABLE IF EXISTS student_score")
conn.execute("""
CREATE TABLE student_score (
id INT PRIMARY KEY,
name VARCHAR(20),
subject VARCHAR(20),
score INT
)
""")
for row in data:
conn.execute("INSERT INTO student_score VALUES (%s,%s,%s,%s)", row)
print("✅ 数据插入成功!")
3. 查询数据
# 使用 Pandas 直接读取数据
df = pd.read_sql("SELECT * FROM student_score", engine)
print("📊 学生成绩数据:\n", df)
输出示例:
id name subject score
0 1 张三 数学 85
1 2 李四 数学 92
2 3 王五 数学 76
3 4 赵六 数学 89
4 5 孙七 数学 95
四、数据可视化
1. 绘制柱状图
# 绘制成绩分布柱状图
plt.figure(figsize=(8,5))
plt.bar(df["name"], df["score"], color="skyblue")
plt.title("学生数学成绩分布")
plt.xlabel("学生姓名")
plt.ylabel("成绩")
plt.show()
2. 绘制成绩趋势折线图
plt.figure(figsize=(8,5))
plt.plot(df["name"], df["score"], marker="o", linestyle="-", color="orange")
plt.title("学生数学成绩趋势图")
plt.xlabel("学生姓名")
plt.ylabel("成绩")
plt.show()
五、总结
本篇文章带你完成了一个完整的实战流程:
- 使用 Python 连接数据库;
- 插入并查询学生成绩数据;
- 使用 Pandas 和 Matplotlib 将数据可视化。
在实际项目中,我们可以扩展到更复杂的业务场景,比如:
- 电商分析:统计商品销量、用户购买趋势;
- 日志分析:分析服务器日志、访问趋势;
- AI 项目:将数据库数据作为训练集输入模型。
Python 与数据库的结合,为数据分析、可视化和智能应用提供了无限可能。
更多推荐
所有评论(0)