39.根据变量的值拆分到不同工作簿

李光朱课程 2024-04-13 20:42:53
案例导入

如下图,根据“科室”的唯一值将数据拆分到不同的Excel文件,保存路径为“D:/Samples/ch04/01 数据拆分/根据变量的值拆分到不同工作簿”。新文件的名称类似“科室1.xlsx”。

图1.原始数据表

文心一言提示词

打开百度“文心一言”,输入提示词:“你是pandas专家,文件路径为:D:/Samples/各科室人员.xlsx。该Excel文件的第一个工作表中A1:G10为给定数据。用pandas导入Excel文件的数据,第1行为索引行,引擎为"openpyxl"。根据“科室”的唯一值将数据拆分到不同的Excel文件,保存路径为“D:/Samples/ch04/01 数据拆分/根据变量的值拆分到不同工作簿”。新文件的名称类似“科室1.xlsx”。”

显示结果如下:

为了根据“科室”列的唯一值将Excel文件中的数据拆分到不同的Excel文件,并保存至指定的文件夹中,我们可以使用以下的Python代码:

import pandas as pdimport os# 设置源文件路径和目标文件夹路径source_file_path = 'D:/Samples/各科室人员.xlsx'target_folder_path = 'D:/Samples/ch04/01 数据拆分/根据变量的值拆分到不同工作簿'# 确保目标文件夹存在if not os.path.exists(target_folder_path): os.makedirs(target_folder_path)# 使用pandas读取Excel文件,设置第一行为索引df = pd.read_excel(source_file_path, sheet_name=0, index_col=0, engine='openpyxl')# 获取“科室”列的唯一值unique_departments = df['科室'].unique()# 遍历每个唯一值,根据“科室”列的值筛选数据并保存到新的Excel文件for i, department in enumerate(unique_departments, start=1): # 筛选特定科室的数据 department_data = df[df['科室'] == department] # 生成新的Excel文件名 new_file_name = f'科室{i}.xlsx' new_file_path = os.path.join(target_folder_path, new_file_name) # 将筛选后的数据保存到新的Excel文件中 department_data.to_excel(new_file_path, sheet_name='数据', index=True)print("数据拆分完成!")

在这段代码中,我们首先读取了Excel文件中的数据,并将第一行设置为索引。接着,我们获取了“科室”列的所有唯一值。然后,我们使用一个循环遍历这些唯一值,并根据每个值筛选出对应的数据。最后,我们将筛选出的数据保存到新的Excel文件中,文件名格式为“科室X.xlsx”,其中X是科室的唯一标识符(通过enumerate函数和start=1参数生成)。

请注意,这段代码假设“科室”列中的值是可以直接用作文件名的,并且不包含任何特殊字符或空格。如果实际情况不是这样,你可能需要对department变量进行一些处理,以确保生成的文件名是有效的。

确保你的Python环境已经安装了pandas和openpyxl库。如果没有安装,可以使用以下命令进行安装:

pip install pandas openpyxl

此外,请确保源文件的路径和Excel工作表名称与你的实际文件相匹配。如果工作表不是第一个,你需要修改sheet_name=0中的0为相应的工作表索引或名称。

Python编辑器运行

图2.Python运行结果

图3.科室1

图4.科室2

图5.科室3

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

申明:以上结果皆为实际运行结果,如遇到无法运行可在评论区留言。部分数据来自网络,如有侵权请私信告知,感谢!

0 阅读:0

李光朱课程

简介:感谢大家的关注