翼度科技»论坛 编程开发 python 查看内容

Python如何将一个EXCEL表拆分多个excel表

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
Python将一个EXCEL表拆分多个excel表

在Python中,你可以使用
  1. pandas
复制代码
库来读取Excel文件,并将一个大的Excel表格(工作表)拆分成多个单独的Excel文件。这通常基于某些条件,比如基于某列的唯一值或者按照行数的固定分割。
以下是一个基于某列唯一值来拆分Excel工作表的示例:
首先,你需要安装
  1. pandas
复制代码
  1. openpyxl
复制代码
(用于读写Excel文件):
  1. pip install pandas openpyxl
复制代码
使用Python脚本拆分Excel文件:
  1. import pandas as pd
  2. # 读取原始Excel文件
  3. original_file = 'original.xlsx'
  4. sheet_name = 'Sheet1'  # 假设你要拆分的工作表名称是'Sheet1'
  5. df = pd.read_excel(original_file, sheet_name=sheet_name)
  6. # 选择你要根据哪一列的唯一值来拆分工作表
  7. split_column = 'column_to_split_by'  # 替换为你的列名
  8. unique_values = df[split_column].unique()
  9. # 遍历唯一值并保存每个子DataFrame到新的Excel文件
  10. for value in unique_values:
  11.     # 筛选数据
  12.     sub_df = df[df[split_column] == value]
  13.     # 构造新的文件名
  14.     new_file = f'split_{value}.xlsx'
  15.     # 写入新的Excel文件
  16.     with pd.ExcelWriter(new_file, engine='openpyxl') as writer:
  17.         sub_df.to_excel(writer, index=False, sheet_name=sheet_name)
  18. print(f'Split into {len(unique_values)} files.')
复制代码
在这个示例中,
  1. split_column
复制代码
是你希望根据其唯一值来拆分工作表的列的名称。
  1. unique_values
复制代码
是一个包含该列所有唯一值的列表。然后,脚本遍历这些唯一值,对于每个唯一值,它筛选出原始DataFrame中对应的行,并将这些行保存到一个新的Excel文件中。
请注意,这个示例假设你的原始Excel文件使用的是
  1. .xlsx
复制代码
格式,并且你希望保存拆分后的文件也为
  1. .xlsx
复制代码
格式。此外,如果你需要拆分的工作表不是第一个工作表(即不是’Sheet1’),你需要将
  1. sheet_name
复制代码
变量的值更改为正确的工作表名称。
如果你想要按照行数的固定分割来拆分工作表(例如,每100行一个文件),你可以稍微修改上面的脚本,使用
  1. range(0, len(df), 100)
复制代码
来迭代行索引,并使用
  1. .iloc
复制代码
来切片DataFrame。

Python将一个EXCEL表中一个sheet拆分多个sheet表

可以使用
  1. pandas
复制代码
结合
  1. openpyxl
复制代码
  1. xlsxwriter
复制代码
来实现。但是,由于
  1. pandas
复制代码
  1. ExcelWriter
复制代码
在写入时不支持在同一个Excel文件中添加多个工作表(除非你一次写入所有工作表),需要使用
  1. openpyxl
复制代码
  1. xlsxwriter
复制代码
来手动操作Excel文件。
以下是一个使用
  1. pandas
复制代码
  1. openpyxl
复制代码
来拆分一个工作表到多个工作表的示例:
  1. import pandas as pd
  2. from openpyxl import load_workbook
  3. # 读取原始Excel文件
  4. original_file = 'original.xlsx'
  5. sheet_name_to_split = 'Sheet1'  # 要拆分的工作表名称
  6. # 使用pandas读取工作表
  7. df = pd.read_excel(original_file, sheet_name=sheet_name_to_split)
  8. # 假设你根据某列的值(例如'group_column')来拆分工作表
  9. # 也可以根据需要使用其他逻辑,比如按行数拆分
  10. groups = df['group_column'].unique()
  11. # 加载已存在的Excel文件以添加新的工作表
  12. book = load_workbook(original_file)
  13. writer = pd.ExcelWriter(original_file, engine='openpyxl')
  14. writer.book = book
  15. # 遍历每个组并将数据写入新的工作表
  16. for group in groups:
  17.     # 筛选数据
  18.     sub_df = df[df['group_column'] == group]
  19.     # 写入新的工作表,如果工作表已存在则先删除
  20.     if group in book.sheetnames:
  21.         book.remove(book[group])
  22.     sub_df.to_excel(writer, sheet_name=group, index=False)
  23. # 保存Excel文件
  24. writer.save()
复制代码
在这个示例中,我们首先加载了原始的Excel文件,并使用
  1. pandas
复制代码
读取了要拆分的工作表。然后,我们根据某个列的唯一值将数据拆分成多个
  1. DataFrame
复制代码
。接下来,我们使用
  1. openpyxl
复制代码
加载原始的Excel工作簿,并遍历每个组。对于每个组,我们检查是否存在同名的工作表,如果存在则删除它,然后将筛选后的数据写入新的工作表。最后,我们保存了修改后的Excel文件。
请注意,这个示例会直接修改原始的Excel文件。如果你不希望修改原始文件,你可以将结果保存到一个新的Excel文件中。此外,如果你的数据量很大,或者拆分后的工作表很多,这个操作可能会比较耗时,因为它需要在内存中处理整个Excel文件。
到此这篇关于Python如何将一个EXCEL表拆分多个excel表的文章就介绍到这了,更多相关Python EXCEL拆分内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/python/322106yve.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具