Python如何将一个EXCEL表拆分多个excel表!
Python如何将一个EXCEL表拆分多个excel表!
Python将一个EXCEL表拆分多个excel表
在Python中,你可以使用pandas
库来读取Excel文件,并将一个大的Excel表格(工作表)拆分成多个单独的Excel文件。这通常基于某些条件,比如基于某列的唯一值或者按照行数的固定分割。
以下是一个基于某列唯一值来拆分Excel工作表的示例:
首先,你需要安装pandas
和openpyxl
(用于读写Excel文件):
1
|
pip install pandas openpyxl |
使用Python脚本拆分Excel文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import pandas as pd # 读取原始Excel文件 original_file = 'original.xlsx' sheet_name = 'Sheet1' # 假设你要拆分的工作表名称是'Sheet1' df = pd.read_excel(original_file, sheet_name = sheet_name) # 选择你要根据哪一列的唯一值来拆分工作表 split_column = 'column_to_split_by' # 替换为你的列名 unique_values = df[split_column].unique() # 遍历唯一值并保存每个子DataFrame到新的Excel文件 for value in unique_values: # 筛选数据 sub_df = df[df[split_column] = = value] # 构造新的文件名 new_file = f 'split_{value}.xlsx' # 写入新的Excel文件 with pd.ExcelWriter(new_file, engine = 'openpyxl' ) as writer: sub_df.to_excel(writer, index = False , sheet_name = sheet_name) print (f 'Split into {len(unique_values)} files.' ) |
在这个示例中,split_column
是你希望根据其唯一值来拆分工作表的列的名称。unique_values
是一个包含该列所有唯一值的列表。然后,脚本遍历这些唯一值,对于每个唯一值,它筛选出原始DataFrame中对应的行,并将这些行保存到一个新的Excel文件中。
请注意,这个示例假设你的原始Excel文件使用的是.xlsx
格式,并且你希望保存拆分后的文件也为.xlsx
格式。此外,如果你需要拆分的工作表不是第一个工作表(即不是’Sheet1’),你需要将sheet_name
变量的值更改为正确的工作表名称。
如果你想要按照行数的固定分割来拆分工作表(例如,每100行一个文件),你可以稍微修改上面的脚本,使用range(0, len(df), 100)
来迭代行索引,并使用.iloc
来切片DataFrame。
Python将一个EXCEL表中一个sheet拆分多个sheet表
可以使用pandas
结合openpyxl
或xlsxwriter
来实现。但是,由于pandas
的ExcelWriter
在写入时不支持在同一个Excel文件中添加多个工作表(除非你一次写入所有工作表),需要使用openpyxl
或xlsxwriter
来手动操作Excel文件。
以下是一个使用pandas
和openpyxl
来拆分一个工作表到多个工作表的示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import pandas as pd from openpyxl import load_workbook # 读取原始Excel文件 original_file = 'original.xlsx' sheet_name_to_split = 'Sheet1' # 要拆分的工作表名称 # 使用pandas读取工作表 df = pd.read_excel(original_file, sheet_name = sheet_name_to_split) # 假设你根据某列的值(例如'group_column')来拆分工作表 # 也可以根据需要使用其他逻辑,比如按行数拆分 groups = df[ 'group_column' ].unique() # 加载已存在的Excel文件以添加新的工作表 book = load_workbook(original_file) writer = pd.ExcelWriter(original_file, engine = 'openpyxl' ) writer.book = book # 遍历每个组并将数据写入新的工作表 for group in groups: # 筛选数据 sub_df = df[df[ 'group_column' ] = = group] # 写入新的工作表,如果工作表已存在则先删除 if group in book.sheetnames: book.remove(book[group]) sub_df.to_excel(writer, sheet_name = group, index = False ) # 保存Excel文件 writer.save() |
在这个示例中,我们首先加载了原始的Excel文件,并使用pandas
读取了要拆分的工作表。然后,我们根据某个列的唯一值将数据拆分成多个DataFrame
。接下来,我们使用openpyxl
加载原始的Excel工作簿,并遍历每个组。对于每个组,我们检查是否存在同名的工作表,如果存在则删除它,然后将筛选后的数据写入新的工作表。最后,我们保存了修改后的Excel文件。
请注意,这个示例会直接修改原始的Excel文件。如果你不希望修改原始文件,你可以将结果保存到一个新的Excel文件中。此外,如果你的数据量很大,或者拆分后的工作表很多,这个操作可能会比较耗时,因为它需要在内存中处理整个Excel文件。
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论