1.1 为什么选Python做办公自动化你可能已经习惯了这样的工作节奏每周一打开20个Excel文件手动复制粘贴汇总数据月底要生成30份合同逐份修改姓名和日期领导突然要一份PDF里的表格你对着不可编辑的文件一个字一个字敲进Excel……这些重复劳动占据了大量时间而且越做越容易出错。有没有一种方法能让电脑替你完成这些机械操作答案是Python。对比传统方案Python vs VBA vs 手动维度手动操作VBA宏Python学习门槛无需学习需要了解Office对象模型需要基础编程概念跨平台仅Windows仅WindowsWindows/macOS/Linux生态丰富度无仅Office内部支持Excel/Word/PDF/邮件/网络等代码复用性无只能在Office内用可做Web后端/数据分析/爬虫社区支持无逐渐萎缩活跃Stack Overflow上百万问答举个例子合并100个Excel文件。VBA需要写几十行代码处理Workbooks对象而Python只需5行import pandas as pd import glob files glob.glob(销售数据/*.xlsx) df_all pd.concat([pd.read_excel(f) for f in files]) df_all.to_excel(合并结果.xlsx, indexFalse)这就是Python的魅力——简洁、强大、一劳永逸。1.2 环境搭建新手也能一次成功第一步安装Python访问 python.org下载Python 3.10及以上版本推荐3.11或3.12。重要安装时务必勾选底部的Add Python to PATH否则后续命令行会提示python不是内部命令。![安装界面示意图底部勾选Add Python to PATH]安装完成后打开命令行Windows按WinR输入cmdmacOS打开终端输入python --version如果显示Python 3.11.x说明安装成功。第二步选择编辑器推荐两种选择方案AVS Code推荐适合长期写代码下载地址code.visualstudio.com安装后扩展商店搜索Python安装微软官方插件新建.py文件即可开始编写方案BJupyter Notebook适合边写边看结果安装pip install jupyter启动命令行输入jupyter notebook浏览器自动打开交互式编程界面对于本专栏我推荐先用VS Code写完整的.py文件配合Jupyter做数据探索。第三步安装必备库打开命令行依次执行以下命令pip install pandas openpyxl numpy matplotlib如果你在国内建议加上清华镜像源加速速度提升10倍以上pip install pandas openpyxl numpy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple各库的作用pandas数据处理核心读写Excel/CSV数据清洗聚合openpyxl读写.xlsx格式文件的底层引擎numpy数值计算基础库pandas依赖它matplotlib画图工具生成报表图表验证安装是否成功# 在Python交互环境或新建test.py中运行 import pandas as pd print(pd.__version__) # 应输出类似 2.1.4 的版本号1.3 pandas基础办公数据处理的瑞士军刀pandas是整个办公自动化的基石。你只需要掌握它的两个核心概念和几个常用操作就能解决80%的Excel处理需求。核心数据结构Series一列数据类似Excel的一列import pandas as pd s pd.Series([100, 200, 300, 400], name销售额) print(s) # 输出 # 0 100 # 1 200 # 2 300 # 3 400 # Name: 销售额, dtype: int64DataFrame一张表格类似Excel的一个工作表data { 姓名: [张三, 李四, 王五], 部门: [销售部, 技术部, 销售部], 销售额: [15000, 22000, 18000] } df pd.DataFrame(data) print(df) # 输出 # 姓名 部门 销售额 # 0 张三 销售部 15000 # 1 李四 技术部 22000 # 2 王五 销售部 18000必学操作读取Excel这是办公自动化最常用的功能# 读取整个工作表 df pd.read_excel(销售数据.xlsx) # 读取指定工作表 df pd.read_excel(销售数据.xlsx, sheet_name1月) # 只读取前5行先看看数据长什么样 df_head pd.read_excel(销售数据.xlsx, nrows5) # 指定某列为索引比如用订单编号作为行标签 df pd.read_excel(销售数据.xlsx, index_col订单编号)必学操作快速了解数据概况拿到一个新数据集先用这几个方法摸清底细# 查看前5行默认或前10行 print(df.head()) print(df.head(10)) # 查看后5行 print(df.tail()) # 查看行列数 print(f共{df.shape[0]}行{df.shape[1]}列) # 查看各列数据类型和是否有空值 print(df.info()) # 查看数值列的统计摘要均值、最大最小、四分位数等 print(df.describe())必学操作筛选与清洗条件筛选找出符合条件的行# 销售额大于10000的记录 high_sales df[df[销售额] 10000] # 销售部且销售额大于15000 sales_high df[(df[部门] 销售部) (df[销售额] 15000)] # 用query方法更直观 sales_high df.query(部门 销售部 and 销售额 15000)处理缺失值# 删除包含空值的行 df_clean df.dropna() # 用指定值填充空值 df_filled df.fillna({销售额: 0, 备注: 暂无}) # 用该列的平均值填充 df[销售额] df[销售额].fillna(df[销售额].mean())删除重复行# 完全相同的行只保留一条 df_unique df.drop_duplicates() # 根据某列去重比如保留每个客户的最新一条记录 df_unique df.drop_duplicates(subset[客户名称], keeplast)实战案例清洗一份混乱的销售数据假设你收到这样一份Excel日期产品销售额备注2026/1/1A12002026/1/2BNaN退货2026/1/2A15002026/1/3B8002026/1/3A12002026/1/3A1200重复录入完整清洗代码import pandas as pd # 1. 读取数据 df pd.read_excel(混乱销售数据.xlsx) print(原始数据, df.shape) # 2. 查看基本信息 print(df.info()) # 3. 删除完全重复的行 df df.drop_duplicates() print(去重后, df.shape) # 4. 处理销售额空值用该列平均值填充 df[销售额] df[销售额].fillna(df[销售额].mean()) print(空值处理后, df.isnull().sum()) # 5. 统一日期格式转为标准日期 df[日期] pd.to_datetime(df[日期]) # 6. 删除备注为退货的行退货不算有效销售 df df[df[备注] ! 退货] # 或者用df df.query(备注 ! 退货) # 7. 重置索引清洗后索引会乱 df df.reset_index(dropTrue) # 8. 保存清洗后的数据 df.to_excel(清洗后销售数据.xlsx, indexFalse) print(清洗完成共保留{}条有效记录.format(len(df)))1.4 常见问题QAQ1安装库时报SSL错误怎么办A这是网络问题换国内镜像源即可pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple如果还是不行尝试pip install 库名 --trusted-host pypi.tuna.tsinghua.edu.cnQ2读取Excel时报Missing optional dependency openpyxlA说明没有安装openpyxl引擎。执行pip install openpyxl即可。Q3文件路径怎么写才不会报错A两种写法都正确绝对路径rD:\工作\数据\销售.xlsx前面加r表示原始字符串反斜杠不会被转义相对路径销售.xlsx前提是这个文件和你的Python脚本在同一文件夹推荐先用绝对路径确保能找到文件熟练后再用相对路径。Q4pandas和Excel公式有什么区别Apandas操作的是内存中的数据不依赖Excel环境。你可以在任何电脑上运行即使没装Office也能处理Excel文件。而且pandas可以处理百万行级别的数据Excel超过104万行就会卡死。课后练习找一份你工作中实际的Excel表格至少50行数据用pandas读取并用info()和describe()查看数据概况。尝试筛选出某一列满足特定条件的行如金额大于5000或状态为已完成。如果数据中有空值尝试用fillna()填充。下讲预告当你学会了读取和处理单个Excel下一步就是批量操作——第2讲我们将学习如何合并多个Excel文件、以及如何按条件拆分成多个文件彻底告别复制粘贴。本讲代码已整理为L01_env_and_pandas_basics.py可在专栏配套资源包中找到。