🧾 项目背景
在日常的数据分析与报表处理中,我们常常需要对 Excel 表格中的数值列进行处理。
例如:
- 求和
- 求平均值
- 添加统计行或列
- 写入新工作表
本文将通过一个完整的 Python 脚本示例,演示如何使用 pandas 对 Excel 文件中的数据进行:
- 行级统计(每行的总分、平均分)
- 列级统计(各列的平均值)
- 新增统计行
- 结果写入原文件的新 sheet 中
📁 数据说明
假设你有一个名为 测试版表4_1.xlsx 的 Excel 文件,其中包含如下字段:
品牌 | 投放金额(万元) | 交易金额 | 测试金额1 | 测试金额2 |
A品牌 | 100 | 200 | 300 | 400 |
B品牌 | 150 | 250 | 350 | 450 |
C品牌 | 120 | 220 | 320 | 420 |
我们的目标是:
- 计算每一行的总分和平均分;
- 计算每一列的平均值;
- 添加一行“小明测试”作为统计汇总行;
- 将结果保存到新的工作表中。
🧪 脚本解析
1. 导入库并读取数据
import pandas as pd
# 读取Excel文件
brand = pd.read_excel('测试版表4_1.xlsx', sheet_name='Sheet1')
这里我们从 Sheet1 中读取原始数据
2. 定义要参与计算的列名
column_names = ['投放金额(万元)', '交易金额', '测试金额1', '测试金额2']
用于限定只对这四列进行统计运算。
3. 行级统计:求和与平均值
# 求每行的和与平均值
row_sum = brand[column_names].sum(axis=1)
row_mean = brand[column_names].mean(axis=1)
# 添加两列
brand['总分'] = row_sum
brand['平均分'] = row_mean
- axis=1 表示按行操作;
- 总分 和 平均分 是新增的统计列。
4. 列级统计:列平均值
# 求每列的平均值
col_mean = brand[column_names].mean()
# 添加品牌字段
col_mean['品牌'] = '小明测试'
col_mean 是一个 Series,表示每一列的平均值。
5. 将统计行添加进 DataFrame
# 将 col_mean 转换为 DataFrame 并追加到原数据中
brand = brand._append(col_mean, ignore_index=True)
- ignore_index=True 表示重置索引;
- 这样我们就成功地在表格底部添加了一行统计汇总行。
6. 打印最终结果
print(brand)
7. 写入 Excel 文件
# 写入新的sheet
with pd.ExcelWriter('测试版表4_1.xlsx', mode='a', engine='openpyxl') as writer:
brand.to_excel(writer, sheet_name='处理后的数据', index=False)
- 使用 mode='a' 在原文件中追加内容;
- index=False 防止写入默认的行号。
✅ 示例输出
运行脚本后,你将在 测试版表4_1.xlsx 中看到新增的 处理后的数据 工作表,内容如下:
品牌 | 投放金额(万元) | 交易金额 | 测试金额1 | 测试金额2 | 总分 | 平均分 |
A品牌 | 100 | 200 | 300 | 400 | 1000 | 250 |
B品牌 | 150 | 250 | 350 | 450 | 1200 | 300 |
C品牌 | 120 | 220 | 320 | 420 | 1080 | 270 |
小明测试 | 123.33 | 223.33 | 323.33 | 423.33 | — | — |
📝 总结
本文通过一个实际案例,介绍了如何使用 pandas 对 Excel 数据进行:
- 行级统计(求和、求平均)
- 列级统计(列平均值)
- 添加统计行
- 结果写入新工作表
这些操作非常适用于生成财务报表、成绩统计、销售汇总等场景。