如何用Python实现Excel同类条目分组求和与文件列表排序输出
分类Excel数值累加并固定顺序输出的实现方案
前置依赖
需要使用pandas完成Excel读写、聚合计算,搭配openpyxl支持xlsx格式文件读取,执行以下命令安装即可:pip install pandas openpyxl
如果是.xls格式的旧版Excel,额外执行pip install xlrd安装对应读取引擎,不需要修改代码逻辑。
完整实现逻辑
核心流程完全匹配需求:读取两列源数据 → 同分类累加数值 → 按分类固定排序 → 按要求格式输出/导出
import pandas as pd # 替换为你本地的Excel文件实际路径 # header=None 参数适配无固定表头的两列结构文件,避免把首行数据误判为列名 source_df = pd.read_excel("源文件.xlsx", header=None) source_df.columns = ["category", "value"] # 按分类分组累加对应数值 sum_result = source_df.groupby("category", as_index=False)["value"].sum() # 固定按分类标识字典序升序排序,不管源文件内条目顺序如何,输出顺序始终一致 sorted_result = sum_result.sort_values(by="category", ascending=True) # 按示例格式打印输出 for _, item in sorted_result.iterrows(): print(f"{item['category']} {int(item['value'])}") # 可选:将结果写入新的Excel文件,不保留索引、不写入默认表头 sorted_result.to_excel("分类汇总结果.xlsx", index=False, header=False)
效果匹配说明
按照给出的样例数据执行代码后,计算逻辑完全对应预期:
- A分类:10 + 20 = 30
- B分类:30 + 15 = 45
- C分类:20
最终控制台输出内容和要求的格式完全一致,且因为加入了固定排序逻辑,重复运行脚本不会出现输出顺序变动的问题。
适配调整提示
- 如果你的源Excel文件自带表头,删除
read_excel中的header=None参数,将代码里的category、value替换为你实际的列名即可 - 如果需要按数值大小而非分类顺序排序,只需要修改
sort_values里的by参数为"value"即可调整排序规则
内容的提问来源于stack exchange,提问作者Rukender
相关产品推荐
相关产品推荐

