欢迎来到"花花 Show Python",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。
自我介绍:
我热衷于将复杂的技术概念以简单易懂的方式呈现给大家,让每个人都能享受到编程的乐趣。我相信,通过不断的学习和实践,我们都能够成为更好的开发者。
关注提示:
如果您喜欢我的内容,别忘了点击关注哦!这样您就可以第一时间获取我的更新和分享。您的支持是我不断前进的动力。
原始表格是这样的,有278张表格,我们需要根据指定的分组进行汇总求和并排序,最终完成这样的表格(见下图):
代码:
python">import pandas as pd # 导入pandas库,用于数据处理
import time # 导入time库,用于测量代码执行时间 s_t = time.time() # 记录代码开始执行的时间 # 新建一个空的DataFrame,用于存储汇总所有工作表的结果
result = pd.DataFrame() # 使用pandas的read_excel函数读取整个Excel文件中的所有工作表,header=2表示将第二行作为列名,sheet_name=None表示读取所有工作表
df = pd.read_excel('日领料单.xlsx', header=2, sheet_name=None) # 遍历df的键(即Excel中的工作表名)
for sheet_name in df.keys(): # 对当前工作表的数据进行分组,按'物料编号'和'物料描述'分组,并计算'批号批数量'的总和 df_sum = df[sheet_name].groupby(['物料编号', '物料描述'])['批号批数量'].sum().reset_index() # 将当前工作表的汇总结果追加到result DataFrame中 result = pd.concat([result, df_sum]) # 对result DataFrame按'物料编号'和'物料描述'进行分组,并再次计算'批号批数量'的总和,以去除可能的重复计数
# 然后重置索引,并按'批号批数量'列的值降序排序
final = result.groupby(['物料编号', '物料描述'])['批号批数量'].sum().reset_index().sort_values('批号批数量', ascending=False) # 将最终的汇总结果保存到新的Excel文件中
final.to_excel("汇总.xlsx") e_t = time.time() # 记录代码执行结束的时间 # 打印处理所有表格所用的时间
print(f"处理278张表格共用时{e_t-s_t}秒")