用 Python 自动化处理 Excel:3 个实用案例
为什么用 Python 处理 Excel?
手动处理 Excel 既耗时又容易出错。用 Python 可以自动化完成重复性工作,提高效率,减少错误。
准备工作
# 安装必要的库
pip install openpyxl pandas
案例 1:批量合并多个 Excel 文件
**场景**:有 10 个月度销售报表,需要合并成一个年度报表。
import pandas as pd
import glob
# 找到所有的 Excel 文件
files = glob.glob("sales_*.xlsx")
# 读取并合并
dfs = []
for file in files:
df = pd.read_excel(file)
dfs.append(df)
merged_df = pd.concat(dfs, ignore_index=True)
# 保存结果
merged_df.to_excel("annual_sales.xlsx", index=False)
print(f"已合并 {len(files)} 个文件")
案例 2:数据清洗和格式化
**场景**:导出的数据格式混乱,需要清洗和统一格式。
import pandas as pd
# 读取数据
df = pd.read_excel("raw_data.xlsx")
# 清洗数据
# 1. 删除空行
df = df.dropna()
# 2. 统一日期格式
df['日期'] = pd.to_datetime(df['日期']).dt.strftime('%Y-%m-%d')
# 3. 统一金额格式(去除货币符号,转为数字)
df['金额'] = df['金额'].str.replace('¥', '').str.replace(',', '').astype(float)
# 4. 去重
df = df.drop_duplicates()
# 保存清洗后的数据
df.to_excel("cleaned_data.xlsx", index=False)
print("数据清洗完成")
案例 3:自动生成报表
**场景**:每月需要生成销售报表,包括汇总统计和图表。
import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
# 读取数据
df = pd.read_excel("sales_data.xlsx")
# 汇总统计
summary = df.groupby('产品类别').agg({
'销售额': 'sum',
'订单数': 'count'
}).reset_index()
# 创建 Excel 文件
wb = Workbook()
ws = wb.active
ws.title = "销售汇总"
# 写入数据
ws.append(['产品类别', '销售额', '订单数'])
for _, row in summary.iterrows():
ws.append([row['产品类别'], row['销售额'], row['订单数']])
# 添加图表
chart = BarChart()
chart.title = "各类别销售额"
chart.y_axis.title = "销售额"
chart.x_axis.title = "产品类别"
data = Reference(ws, min_col=2, min_row=1, max_row=len(summary)+1)
cats = Reference(ws, min_col=1, min_row=2, max_row=len(summary)+1)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
ws.add_chart(chart, "E2")
# 保存
wb.save("sales_report.xlsx")
print("报表生成完成")
进阶技巧
1. 批量重命名列
df.rename(columns={
'旧列名1': '新列名1',
'旧列名2': '新列名2'
}, inplace=True)
2. 条件筛选
# 筛选销售额大于 1000 的记录
high_sales = df[df['销售额'] > 1000]
3. 透视表
pivot = pd.pivot_table(df,
values='销售额',
index='产品类别',
columns='月份',
aggfunc='sum'
)
总结
用 Python 处理 Excel 可以大大提高工作效率。掌握这几个基本操作,你就能应对大多数日常需求。
---
**壁虎在线编程** 的 Python 实战课程包含更多实用案例,从基础到进阶,帮你成为 Python 高手。现在就开始学习!