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

 更新时间:2024年06月03日 09:39:43   作者:小九不懂SAP  
在Python中,你可以使用pandas库来读取Excel文件,并将一个大的Excel表格(工作表)拆分成多个单独的Excel文件,这篇文章主要介绍了Python如何将一个EXCEL表拆分多个excel表,需要的朋友可以参考下

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

在Python中,你可以使用pandas库来读取Excel文件,并将一个大的Excel表格(工作表)拆分成多个单独的Excel文件。这通常基于某些条件,比如基于某列的唯一值或者按照行数的固定分割。

以下是一个基于某列唯一值来拆分Excel工作表的示例:

首先,你需要安装pandasopenpyxl(用于读写Excel文件):

pip install pandas openpyxl

使用Python脚本拆分Excel文件:

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结合openpyxlxlsxwriter来实现。但是,由于pandasExcelWriter在写入时不支持在同一个Excel文件中添加多个工作表(除非你一次写入所有工作表),需要使用openpyxlxlsxwriter来手动操作Excel文件。

以下是一个使用pandasopenpyxl来拆分一个工作表到多个工作表的示例:

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文件。

到此这篇关于Python如何将一个EXCEL表拆分多个excel表的文章就介绍到这了,更多相关Python EXCEL拆分内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python简单计算文件MD5值的方法示例

    Python简单计算文件MD5值的方法示例

    这篇文章主要介绍了Python简单计算文件MD5值的方法,涉及Python文件读取、hash运算及md5加密等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • python神经网络之批量学习tf.train.batch函数示例

    python神经网络之批量学习tf.train.batch函数示例

    这篇文章主要为大家介绍了python神经网络之批量学习tf.train.batch函数示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 树莓派升级python的具体步骤

    树莓派升级python的具体步骤

    在本篇文章里小编给大家整理的是关于树莓派升级python的具体步骤,需要的朋友们可以参考下。
    2020-07-07
  • python虚拟环境创建的两种方法

    python虚拟环境创建的两种方法

    本文主要介绍了python虚拟环境创建的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Python 中 Pandas 文件操作和读取 CSV 参数详解

    Python 中 Pandas 文件操作和读取 CSV 参数详解

    CSV 又称逗号分隔值文件,是一种简单的文件格式,以特定的结构来排列表格数据,这篇文章主要介绍了Python 之 Pandas 文件操作和读取 CSV 参数详解,需要的朋友可以参考下
    2023-03-03
  • 浅谈python爬虫使用Selenium模拟浏览器行为

    浅谈python爬虫使用Selenium模拟浏览器行为

    这篇文章主要介绍了浅谈python爬虫使用Selenium模拟浏览器行为,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • DataFrame 数据合并实现(merge,join,concat)

    DataFrame 数据合并实现(merge,join,concat)

    这篇文章主要介绍了DataFrame 数据合并实现(merge,join,concat),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Python编程技巧连接列表的八种操作方法

    Python编程技巧连接列表的八种操作方法

    这篇文章主要为大家介绍了Python编程技巧之连接列表的八种操作方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • PyTorch中torch.cuda.amp相关警告的解决方法

    PyTorch中torch.cuda.amp相关警告的解决方法

    在最近的写代码过程中,遇到了两个与 PyTorch 的混合精度训练相关的警告信息,torch.cuda.amp.autocast和torch.cuda.amp.GradScaler,文中通过代码示例给大家介绍了详细的解决方法,需要的朋友可以参考下
    2025-02-02
  • TFRecord格式存储数据与队列读取实例

    TFRecord格式存储数据与队列读取实例

    今天小编就为大家分享一篇TFRecord格式存储数据与队列读取实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01

最新评论