“面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。——华罗庚”
导语:
缘起要处理一些数据,本来复制粘贴至少一个小时的工作,利用大模型5分钟解决。由于保密性原则,思路一样,关键数据已脱敏处理~
生成一个 python 程序。功能是读取 excel 文件中的数据,将每个组别生成一个 excel 表格,并将每个学校数据生成对应表格中的一个表,以序号 + 组别命名文件
代码非常全面,但是解释性语句过多,过于繁琐了。
继续提问:
去除解释,读取的文件就在同目录下的 1.xlsx,重新给出代码将程序保存至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不存在") return df = pd.read_excel(INPUT_EXCEL_PATH) for col in [GROUP_COLUMN, SCHOOL_COLUMN]: if col not in df.columns: print(f"表格缺少列:{col}") return df = 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("完成")
结语:
大模型为编程新手扫清了数据处理障碍,简化代码编写,降低技术门槛,让数据分析事半功倍。^-^
《县域中小学信息科技教师人工智能素养提升路径研究》、《县域中小学教师数字素养提升策略研究》