从零学 Python 系列(九):常用库实战与学习路径,开启 Python 应用之旅
经过前面八篇的学习,我们已经掌握了 Python 的核心基础 —— 从变量、语法到函数、面向对象,再到文件操作和异常处理。但 Python 真正的 “威力”,藏在它丰富的第三方库中。一个优秀的 Python 开发者,不是从零编写所有代码,而是懂得如何用现成的库快速解决问题。这篇作为系列的最后一篇,将带你实战三个最常用的场景(数据分析、自动化办公、简单爬虫),同时给出清晰的后续学习路径,帮你从 “入门” 走向 “应用”。
一、实战一:用 Pandas 做数据分析,5 分钟搞定 Excel 复杂计算
在工作中,我们经常需要处理大量表格数据(比如销售数据、用户数据),用 Excel 手动计算不仅慢,还容易出错。而Pandas库能让数据分析效率提升 10 倍,甚至用一行代码完成 Excel 中几十步的操作。
1. 准备工作:安装 Pandas
首先需要安装Pandas(如果之前没装过),打开命令行输入:
pip install pandas openpyxl # openpyxl用于读取Excel文件
2. 实战案例:分析销售数据
假设我们有一份 “销售数据.xlsx”,包含 “日期、产品、销量、销售额” 四列,需要完成三个任务:
- 计算每种产品的总销量和总销售额;
- 找出销售额最高的 3 天;
- 按日期统计每日总销售额,并生成简单报表。
(1)读取 Excel 数据
import pandas as pd
# 读取Excel文件(指定sheet名,默认读第一个sheet)
df = pd.read_excel("销售数据.xlsx", sheet_name="Sheet1")
# 查看数据的前5行(了解数据结构)
print("数据前5行:")
print(df.head())
# 查看数据基本信息(行数、列数、数据类型)
print("\n数据基本信息:")
print(df.info())
# 查看数据统计摘要(均值、最大值等)
print("\n数据统计摘要:")
print(df.describe())
(2)按产品分组计算
用groupby()方法按 “产品” 分组,计算总销量和总销售额:
# 按产品分组,计算总销量和总销售额
product_stats = df.groupby("产品").agg({
"销量": "sum",
"销售额": "sum"
}).reset_index() # reset_index()让“产品”从索引变回列
# 按总销售额降序排序
product_stats = product_stats.sort_values("销售额", ascending=False)
print("各产品销售统计:")
print(product_stats)
(3)找出销售额最高的 3 天
用nlargest()方法快速找出 Top N 数据:
# 按销售额降序,取前3行(销售额最高的3天)
top3_days = df.nlargest(3, "销售额")[["日期", "产品", "销售额"]]
print("\n销售额最高的3天:")
print(top3_days)
(4)生成每日销售报表并保存
# 按日期分组,计算每日总销售额
daily_sales = df.groupby("日期")["销售额"].sum().reset_index()
# 给报表添加“日均销售额”列
daily_sales["日均销售额"] = daily_sales["销售额"].mean()
# 保存报表到新的Excel文件
daily_sales.to_excel("每日销售报表.xlsx", index=False, sheet_name="每日统计")
print("\n每日销售报表已保存!")
print("每日销售统计:")
print(daily_sales)
效果对比:用 Excel 完成这些操作,需要手动插入数据透视表、排序、计算均值,至少需要 20 分钟;而用 Pandas,10 行代码 + 5 分钟就能搞定,还能避免手动操作的错误。
二、实战二:用 OpenPyXL 自动化操作 Excel,告别重复填表
除了分析数据,我们还经常需要 “重复填写 Excel 表格”(比如每月给员工发工资条、批量生成合同)。OpenPyXL库能帮你自动读取、修改 Excel 文件,甚至生成新的表格,彻底解放双手。
1. 实战案例:批量生成工资条
假设我们有一份 “员工工资表.xlsx”,包含 “姓名、部门、基本工资、绩效工资”,需要为每个员工生成单独的工资条(包含表头和个人信息),并保存到新的 Excel 文件中。
(1)读取员工工资数据并生成工资条
from openpyxl import Workbook
import pandas as pd
# 1. 读取员工工资数据
df = pd.read_excel("员工工资表.xlsx")
# 2. 创建新的Excel工作簿
wb = Workbook()
ws = wb.active # 获取默认工作表
ws.title = "工资条汇总" # 重命名工作表
# 3. 定义工资条表头
headers = ["姓名", "部门", "基本工资", "绩效工资", "应发工资"]
# 4. 批量生成工资条(每个员工占3行:表头+数据+空行)
row_num = 1 # 从第1行开始写入
for _, employee in df.iterrows():
# 计算应发工资
total_salary = employee["基本工资"] + employee["绩效工资"]
# 写入表头
for col, header in enumerate(headers, 1):
ws.cell(row=row_num, column=col, value=header)
# 写入员工数据(下一行)
employee_data = [
employee["姓名"],
employee["部门"],
employee["基本工资"],
employee["绩效工资"],
total_salary
]
for col, data in enumerate(employee_data, 1):
ws.cell(row=row_num + 1, column=col, value=data)
# 空一行(分隔不同员工)
row_num += 3
# 5. 保存文件
wb.save("员工工资条.xlsx")
print("工资条已批量生成!")
(2)效果说明
运行后会生成 “员工工资条.xlsx”,每个员工的工资条包含独立的表头和个人数据,无需手动复制粘贴。如果有 100 个员工,这个脚本能在 10 秒内完成,而手动操作至少需要 1 小时。
三、实战三:用 Requests 爬取网页数据,获取公开信息
有时候我们需要从网页上获取公开数据(比如天气预报、股票行情、新闻资讯),Requests库能帮你快速发送网络请求,获取网页内容,再用简单的解析提取需要的信息(这里我们用BeautifulSoup做解析,需先安装:pip install requests beautifulsoup4)。
1. 实战案例:爬取某城市天气预报
以 “爬取北京未来 3 天的天气预报” 为例(以公开的天气网站为例,实际使用时需遵守网站的 robots 协议):
import requests
from bs4 import BeautifulSoup
# 1. 发送请求,获取网页内容
url = "http://www.weather.com.cn/weather/101010100.shtml" # 北京天气预报URL
response = requests.get(url)
response.encoding = "utf-8" # 设置编码,避免中文乱码
# 2. 解析网页内容
soup = BeautifulSoup(response.text, "html.parser")
# 3. 提取未来3天的天气信息(通过网页结构找到对应标签)
weather_list = soup.find_all("div", class_="t") # 找到包含天气信息的div标签
# 4. 遍历提取并打印
print("北京未来3天天气预报:")
for i, weather in enumerate(weather_list[:3], 1): # 只取前3天
# 提取日期、天气、温度
date = weather.find("h1").text # 日期
condition = weather.find("p", class_="wea").text # 天气状况
temp = weather.find("p", class_="tem").text # 温度
print(f"{i}天后({date}):天气{condition},温度{temp}")
(3)注意事项
- 遵守 robots 协议:爬取前先查看网站的robots.txt文件(比如http://www.weather.com.cn/robots.txt),确认是否允许爬取;
- 不要频繁请求:避免短时间内发送大量请求,以免给网站服务器造成压力,建议添加适当的延迟(用time.sleep(1));
- 只爬取公开数据:不爬取需要登录或付费的内容,更不能爬取隐私信息,遵守法律法规。
四、系列总结与后续学习路径
到这里,“从零学 Python 系列” 就告一段落了。我们从环境搭建开始,逐步学习了基础语法、数据结构、函数、面向对象、文件操作、异常处理,最后通过三个实战案例掌握了常用库的应用。回顾整个学习过程,你已经具备了 Python 的核心能力,接下来可以根据自己的兴趣和目标,选择具体的方向深入学习。
1. 系列核心知识点回顾
- 基础层:变量、数据类型(字符串、列表、字典)、流程控制(if/for/while);
- 工具层:函数、模块、文件操作、异常处理;
- 思想层:面向对象编程(类、封装、继承、多态);
- 应用层:Pandas(数据分析)、OpenPyXL(自动化办公)、Requests(网络请求)。
2. 后续学习方向(按场景划分)
(1)数据分析 / 数据科学方向
- 核心库:Pandas(数据处理)、NumPy(数值计算)、Matplotlib/Seaborn(数据可视化)、Scikit-learn(机器学习);
- 学习路径:先熟练掌握 Pandas 数据清洗和可视化,再学习机器学习基础算法(如线性回归、决策树),最后通过 Kaggle 竞赛或实际项目练手;
- 应用场景:销售数据分析、用户行为分析、预测模型(如销量预测、客户流失预测)。
(2)自动化办公 / 脚本开发方向
- 核心库:OpenPyXL(Excel)、python-docx(Word)、PyPDF2(PDF)、smtplib(邮件)、schedule(定时任务);
- 学习路径:先实现单个自动化需求(如自动发邮件、批量处理文件),再整合多个功能(如 “自动读取数据→生成报表→发送邮件” 的完整流程);
- 应用场景:自动生成周报、批量修改文件、定时备份数据。
(3)Web 开发方向
- 核心框架:Flask(轻量级,适合小项目)、Django(全能型,适合大项目);
- 学习路径:先学 Flask,用它做一个简单的个人博客或工具网站(如在线计算器),再学 Django,掌握用户认证、数据库操作等功能;
- 应用场景:个人博客、企业官网、内部管理系统(如库存管理系统)。
(4)爬虫 / 数据采集方向
- 核心工具:Requests(请求)、BeautifulSoup/XPath(解析)、Scrapy(分布式爬虫框架)、Selenium(模拟浏览器);
- 学习路径:先学 Requests+BeautifulSoup 爬取静态网页,再学 Selenium 处理动态网页(如需要登录的网站),最后学 Scrapy 实现大规模数据采集;
- 应用场景:采集公开的新闻数据、商品价格监控、学术数据收集。
3. 学习建议:项目驱动,拒绝 “纸上谈兵”
- 不要只看教程:学完一个知识点后,立刻用它做一个小项目(比如学完列表后,做一个 “待办事项清单”;学完文件操作后,做一个 “日记记录工具”);
- 遇到问题先自己查:百度、Stack Overflow、Python 官方文档是最好的老师,90% 的问题都能在这些平台找到答案;
- 定期回顾和重构:隔一段时间,把之前写的代码拿出来优化(比如用函数代替重复代码,用类封装逻辑),培养 “代码洁癖”;
- 加入学习社区:在 GitHub 上分享自己的项目,或加入 Python 学习群,和其他人交流,既能获得反馈,也能保持学习动力。
结语:Python 只是工具,解决问题才是目的
最后想对你说:Python 本身并不难,难的是坚持用它解决实际问题。从 “能写出代码” 到 “能解决问题”,中间需要大量的实践。可能你在实战中会遇到各种报错,可能会卡在某个功能上半天,但请相信 —— 每解决一个问题,你的能力就会提升一分。
这个系列虽然结束了,但你的 Python 之旅才刚刚开始。希望你能带着学到的知识,去解决工作或生活中的实际需求,让 Python 真正成为你的 “效率工具”。如果在后续学习中遇到问题,随时回头翻看这个系列的内容,也欢迎在评论区分享你的学习成果或疑问,我们一起进步!
更多推荐


所有评论(0)