WEEK 07 / 16 数据处理与可视化 · 虚拟环境
PYTHON 程序设计 · V2 · 第 7 周(100 分钟 · L15–L16)

让数据说话
再让项目互相不打架

前两周拿回来的数据还是「一堆数字」——本周用 Pandas 清洗统计、Matplotlib 画图, 走完从原始数据到可视化结论的完整链路;然后解决 AI 项目最痛的问题:依赖冲突。

M3 收官 + M4 开篇← → 翻页 · F 全屏

今日课表(100 分钟)

时间环节要点
0–10Pandas 模型DataFrame=代码里的 Excel;read_csv/head/info/describe
10–22筛选与统计df[df[列]>值];groupby+mean;sort_values——每步打印看变化
22–34动手练习运行场:清洗→统计→ASCII 柱状图(Pandas 思维先行版)
34–46Matplotlibbar 对比 / plot 趋势;标题轴标保存;图表是为了让数据说话
46–58全链路演示天气 CSV → groupby 均温 → 柱状图 + 一周趋势折线
58–70依赖灾难现场全局环境装 requests==2.20 再装 >=2.28——当场冲突报错
70–85虚拟环境venv 创建/激活/独立安装;requirements.txt 锁定与还原
85–95镜像与生态清华源 -i 加速;pipenv/conda 知道有得选
95–100小测随堂小测 3 题

依赖灾难演示一定要现场复现——比讲十遍概念都有效。

Pandas:代码里的 Excel

读取
read_csv
→
了解
head / info / describe
→
筛选统计
条件 / groupby
→
可视化
Matplotlib
import pandas as pd
df = pd.read_csv("weather.csv")          # DataFrame ≈ 一张表

df[df["temperature"] > 30]               # 条件筛选:高温天
df.groupby("city")["temperature"].mean()    # 分组统计:各城市均温
df.sort_values("temperature", ascending=False) # 排序

方法极多不用背——能描述要什么、能看懂 AI 生成的链式调用即可。

动手:数据全链路(纯 Python 版)

交互 · 浏览器内运行(Pandas 思维的先行版)

浏览器运行场装不了 Pandas,但「清洗 → 统计 → 结论」的思路先跑通:

Matplotlib:一图胜千数

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(8, 4))
ax.bar(cities, avg_temps)             # 柱状图:对比
ax.plot(dates, temps)                # 折线图:趋势
ax.set_title("各城市平均温度")
ax.set_ylabel("℃")
fig.savefig("temp.png", dpi=150)   # 保存图片

现场制造一次「依赖灾难」

演示:全局环境里装 requests==2.20,再装一个要求 requests>=2.28 的库——

ERROR: pip's dependency resolver... requests 2.20 has requirement...,
but you'll have requests 2.31 which is incompatible.
为什么会这样?所有项目共用一个全局环境——A 项目要 torch 2.1,B 项目要 torch 2.5, 装在一起必有一个崩。AI 时代更严重:每次问 AI 安装命令,它推荐的版本还可能不一样。
解法:虚拟环境——每个项目一间独立实验室,各有各的试剂柜。

虚拟环境标准流程

python -m venv venv
创建
→
venv\Scripts\activate
激活(Windows)
→
pip install ...
独立安装
→
pip freeze > requirements.txt
导出锁定

随堂小测(3 题)

交互 · 点击选项作答

课后与下周预告

本周课后
  • 练习:给项目建 venv,装 requests + openai,导出 requirements.txt
下周:W8 代码质量与模块化 AI 生成的代码为什么不能直接用——五类常见问题与审查方法;把单文件巨石拆成专业项目结构。 提前看下周课件 →

深入阅读:M3 · M4 模块页 · 经典笔记 15.2 Pandas · 10.5 虚拟环境