38.简单拆分-垂直

李光朱课程 2024-04-08 10:51:04
案例导入

如下图,每5行数据执行以下操作:将数据保存到路径“D:/Samples/ch04/01 数据拆分/简单拆分-垂直”下的一个新的工作簿文件中,使用相同的索引行。新工作簿的名称类似“学生成绩_1.xlsx”。

图1.原始数据表

文心一言提示词

打开百度“文心一言”,输入提示词:“你是pandas专家,文件路径为:D:/Samples/学生成绩.xlsx。该Excel文件的第一个工作表中A1:D11为给定数据,A-D列分别为“姓名”、“语文”、“数学”和“英语”数据。用pandas导入Excel文件的数据,第1行为索引行,引擎为"openpyxl",每5行数据执行以下操作:将数据保存到路径“D:/Samples/ch04/01 数据拆分/简单拆分-垂直”下的一个新的工作簿文件中,使用相同的索引行。新工作簿的名称类似“学生成绩_1.xlsx”。”

显示结果如下:

首先,我们需要确保安装了pandas和openpyxl库,因为openpyxl是读取和写入Excel文件的一个引擎。如果尚未安装,可以使用pip安装:

pip install pandas openpyxl

然后,我们可以使用pandas来读取Excel文件,并按照你的要求每5行分割数据,并将每个数据块保存到新的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')# 初始化一个计数器,用于生成新的工作簿文件名counter = 1# 每5行数据创建一个新的工作簿for i in range(0, len(df), 5): # 提取5行数据(如果剩余不足5行,则提取剩余所有数据) chunk = df.iloc[i:i+5] # 生成新的工作簿文件名 new_file_name = f'学生成绩_{counter}.xlsx' new_file_path = os.path.join(target_folder_path, new_file_name) # 将数据块保存到新的工作簿中 with pd.ExcelWriter(new_file_path, engine='openpyxl') as writer: chunk.to_excel(writer, sheet_name='Sheet1', index=True) # 更新计数器 counter += 1print("数据拆分完成!")

此代码首先读取了Excel文件,然后将其按照每5行分割成多个数据块。每个数据块都被保存到一个新的Excel工作簿中,并放置在指定的目标文件夹中。新的工作簿文件名称以“学生成绩_”开头,并附上一个递增的计数器,以确保文件名是唯一的。

请确保目标文件夹的路径是正确的,并且你的程序有足够的权限去创建和写入文件。如果源文件的路径或工作表名称与示例中不同,请相应地调整代码中的source_file_path和sheet_name参数。

Python编辑器运行

图2.Python运行结果

图3.新生成的数据表1

图4.新生成的数据表2

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

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

0 阅读:0

李光朱课程

简介:感谢大家的关注