面向 编程零基础初学者(尤其适合经济学/社会科学方向)的 5 周 Python 课程,终点是 能独立做数据处理 + 理解并跑 OLS 回归 + 完成一份真实数据可复现分析报告。 A 5-week Python course for complete beginners (great for economics/social-science learners), ending at data wrangling + OLS regressions + a reproducible real-world data report.
作者 / Author: PENG
当前版本 / Version:
v1.0稳定版 / stable — 全部版本见 Releases
- 对象 / Audience: 编程零基础的初学者(经济学/社科背景友好)/ beginners with zero coding (economics-friendly)
- 时长 / Duration: 5 周 · 15 节 · 每节 60 分钟(周一/三/五)/ 5 weeks, 15 sessions, 60 min each (Mon/Wed/Fri)
- 每节结构 / Per session: 20 分钟理论 + 20 分钟演示 + 20 分钟课堂练习 / 20-min theory + 20-min demo + 20-min practice
- 课后 / After class: 每节一份约 30 分钟作业,附答案 / one ~30-min homework per session, with answers
- 语言 / Language: 中英双语对照 / bilingual (Chinese + English)
- 环境 / Environment: Anaconda + Jupyter Notebook(见
SETUP_GUIDE.md)
| 周 Week | 节 Session | 主题 / Topic | Notebook |
|---|---|---|---|
| 1 | 1 | 环境、变量与数据类型 / Setup, variables & types | week1/session1_lecture.ipynb |
| 1 | 2 | 列表与循环 / Lists & loops | week1/session2_lecture.ipynb |
| 1 | 3 | 字典、条件与函数 / Dicts, conditionals & functions | week1/session3_lecture.ipynb |
| 2 | 4 | NumPy 向量化数组 / NumPy arrays | week2/session4_lecture.ipynb |
| 2 | 5 | pandas 入门:Series 与 DataFrame / Intro to pandas | week2/session5_lecture.ipynb |
| 2 | 6 | pandas 索引与筛选 / Indexing & filtering | week2/session6_lecture.ipynb |
| 3 | 7 | 读写真实数据 / Reading real data | week3/session7_lecture.ipynb |
| 3 | 8 | 数据清洗 / Data cleaning | week3/session8_lecture.ipynb |
| 3 | 9 | matplotlib 可视化 / Visualization | week3/session9_lecture.ipynb |
| 4 | 10 | 分组聚合与描述统计 / Group-by & stats | week4/session10_lecture.ipynb |
| 4 | 11 | 一元 OLS 回归 / Simple OLS | week4/session11_lecture.ipynb |
| 4 | 12 | 多元 OLS、虚拟变量与综合实战 / Multiple OLS, dummies & capstone | week4/session12_lecture.ipynb |
| 5 | 13 | 项目启动:提出问题、获取与理解数据 / Project kickoff: question, data & cleaning | week5/session13_lecture.ipynb |
| 5 | 14 | 探索性数据分析与可视化讲故事 / EDA & visual storytelling | week5/session14_lecture.ipynb |
| 5 | 15 | 建模与可复现报告(结课项目)/ Modeling & reproducible report (capstone) | week5/session15_lecture.ipynb |
第 5 周是 真实数据实战周:用 gapminder(全球各国 1952–2007 预期寿命/人口/人均 GDP)完成一个完整的可复现分析项目。 Week 5 is a real-world project week on gapminder.
详细逐节计划见 SYLLABUS.md。/ Full plan in SYLLABUS.md.
python-course/
├── README.md # 本文件 / this file
├── SYLLABUS.md # 详细课程大纲(逐节计划)/ detailed syllabus
├── SETUP_GUIDE.md # Anaconda 安装与排障 / setup & troubleshooting
├── data/ # 课程数据集 / datasets (tips.csv, macrodata.csv, gapminder.csv, ex1/ex2, ex1.xlsx)
│ # └─ gapminder_demo_errors.csv = 故意含缺失值的版本,用于课堂演示"脏数据/清洗" / a deliberately broken copy for teaching data-cleaning
├── week1/ … week5/ # 每节 3 个 notebook / 3 notebooks per session
│ ├── sessionN_lecture.ipynb # 讲师演示版(理论+演示+课堂练习,逐格运行即出结果)
│ ├── sessionN_homework.ipynb # 课后作业题面(空待填)
│ └── sessionN_answers.ipynb # 课后作业答案(完整可运行)
├── REFERENCES.md # 参考资料清单(第三方仓库链接,不随本仓库分发)/ reference links
└── build/ # 生成 notebook 的脚本 / scripts that build the notebooks
每个 lecture notebook 内部分三段:Part 1 理论 → Part 2 演示 → Part 3 课堂练习(练习答案附在 notebook 末尾,供讲师用)。
- 先装环境:照着 SETUP_GUIDE.md 装好 Anaconda,创建
pycourse环境。 Install Anaconda first; create thepycourseenvironment. - 课前:打开当节的
sessionN_lecture.ipynb,跟着老师一格一格运行(Shift+Enter)。 Before class, open the lecture notebook and run cells along with the instructor. - 课堂练习:在 lecture 的 Part 3 自己动手填代码,遇到卡壳看末尾的参考答案。 Do Part 3 exercises yourself; peek at the solutions at the end if stuck.
- 课后:独立完成
sessionN_homework.ipynb(约 30 分钟),先自己做,再 对照sessionN_answers.ipynb检查。 After class, do the homework on your own first, then check against the answers. - 第 4 周:第 12 节作业是综合小项目,独立走完"读数→清洗→画图→回归→解读"。 Week 4 ends with a full-pipeline mini-project.
- 第 5 周:用真实的 gapminder 数据做一个完整的 可复现分析项目,第 15 节的结课作业是独立产出一份双语分析报告;讲义最后还点了 逻辑回归等可继续深入的方向。 Week 5 is a real-world reproducible project on gapminder; the final capstone is your own bilingual report, and the last lecture points to next topics (logistic regression, causal inference, …).
启动方式:在终端
conda activate pycourse,再cd到本目录,运行jupyter notebook。 Notebook 用相对路径../data/...读数据,所以请 在各 weekN 目录下 打开对应 notebook。
完成后,你应能独立:用 pandas 读取/清洗/分组数据,用 matplotlib 画图,用 statsmodels 跑一元与多元 OLS(含虚拟变量),并正确解读 系数、R²、p 值。
By the end, you can load/clean/group data with pandas, plot with matplotlib, run simple & multiple OLS (with dummies) in statsmodels, and correctly read coefficients, R², and p-values.
本项目采用 MIT License 授权,版权所有 © 2026 PENG。你可以自由使用、修改、分发本课程材料(包括用于教学),只需保留原始版权声明。完整条款见 LICENSE。
Licensed under the MIT License, Copyright © 2026 PENG. You are free to use, modify, and distribute these course materials (including for teaching) provided the original copyright notice is retained. See LICENSE for the full text.