按组别+学校拆分Excel 文件的Python程序 (附代码)
- 2026-11-09 21:05:53
按组别+学校拆分Excel 文件的Python程序 (附代码)提问大模型: 
去除解释,读取的文件就在同目录下的 1.xlsx,重新给出代码 
截图并提问,为何出错,请修正 
win+R 执行cmd指令,果然第一种方式出错,第二种成功 
将程序保存至excel表格同目录中,运行程序,很快生成新的文件夹,结果如我所愿。 

简易代码如下: 对于四十多行的代码,我还是觉得繁琐了,于是提问: 非常好,请再精简代码,越少越好 结果一样,但是果然精简了不少 
精简代码如下: 备注:此文为安徽省教育科学研究项目学习资料 《县域中小学信息科技教师人工智能素养提升路径研究》、《县域中小学教师数字素养提升策略研究》 
点击蓝字关注我们
大显整理
“面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。——华罗庚”
导语:
缘起要处理一些数据,本来复制粘贴至少一个小时的工作,利用大模型5分钟解决。由于保密性原则,思路一样,关键数据已脱敏处理~
生成一个 python 程序。功能是读取 excel 文件中的数据,将每个组别生成一个 excel 表格,并将每个学校数据生成对应表格中的一个表,以序号 + 组别命名文件

代码非常全面,但是解释性语句过多,过于繁琐了。
继续提问:





import pandas as pdimport osfrom openpyxl import Workbookfrom pathlib import PathINPUT_EXCEL_PATH = '1.xlsx'GROUP_COLUMN = '组别'SCHOOL_COLUMN = '学校名称'OUTPUT_FOLDER = './拆分结果'SEQUENCE_DIGITS = 2def main():if not os.path.exists(INPUT_EXCEL_PATH):print("文件1.xlsx不存在")returndf = pd.read_excel(INPUT_EXCEL_PATH)for col in [GROUP_COLUMN, SCHOOL_COLUMN]:if col not in df.columns:print(f"表格缺少列:{col}")returndf = df.dropna(subset=[GROUP_COLUMN, SCHOOL_COLUMN])Path(OUTPUT_FOLDER).mkdir(exist_ok=True)groups = df[GROUP_COLUMN].unique()for idx, group in enumerate(groups, 1):group_data = df[df[GROUP_COLUMN]==group]fname = f"{idx:0{SEQUENCE_DIGITS}d}_{group}.xlsx"wb = Workbook()wb.remove(wb.active)schools = group_data[SCHOOL_COLUMN].unique()for school in schools:s_data = group_data[group_data[SCHOOL_COLUMN]==school]sheet_name = str(school).replace('\\','_').replace('/','_').replace(':','_').replace('*','_').replace('?','_').replace('"','_').replace('<','_').replace('>','_').replace('|','_')[:30]ws = wb.create_sheet(sheet_name)ws.append(list(df.columns))for _, row in s_data.iterrows():ws.append(row.tolist())wb.save(os.path.join(OUTPUT_FOLDER, fname))print("全部拆分完成")if __name__ == "__main__":main()

import pandas as pd, osfrom openpyxl import Workbookfrom pathlib import Pathf = "1.xlsx"g_col, s_col = "组别", "学校名称"out = "./拆分结果2"Path(out).mkdir(exist_ok=1)df = pd.read_excel(f).dropna(subset=[g_col, s_col])for i, g in enumerate(df[g_col].unique(), 1):wb = Workbook()wb.remove(wb.active)gd = df[df[g_col]==g]for s in gd[s_col].unique():ws = wb.create_sheet(str(s).translate(str.maketrans(r'\/:*?"<>|','_________'))[:30])ws.append(df.columns.tolist())[ws.append(r.tolist()) for _,r in gd[gd[s_col]==s].iterrows()]wb.save(f"{out}/{i:02d}_{g}.xlsx")print("完成")
结语:
大模型为编程新手扫清了数据处理障碍,简化代码编写,降低技术门槛,让数据分析事半功倍。^-^
撰 稿|大 显
审 核|信息技术智慧+

本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。