Pandas实现批量拆分与合并Excel的示例代码

下面是详细讲解“Pandas实现批量拆分与合并Excel的示例代码”的完整实例教程。

一、需求背景

首先,我们需要明确这个示例的需求背景,即:

  • 我们有一个Excel文件,里面有多个工作表;
  • 我们需要将每个工作表独立拆分成一个新的Excel文件,并命名为原工作表的名称;
  • 然后,我们又需要将这些新生成的Excel文件,批量合并成一个新的Excel文件。

二、实现步骤

接下来,我们开始逐步实现上述需求。

1. 导入必要的库

我们需要先导入Pandas库和OS库:

import pandas as pd
import os

2. 批量拆分Excel文件

我们需要使用Pandas的read_excel()方法读取原始Excel文件,并使用sheet_names属性获取所有工作表名。然后,我们可以使用for循环,逐个读取每个工作表,使用to_excel()方法以工作表名为文件名,将其拆分成独立的Excel文件。

示例代码如下:

# 读取原始Excel文件
file_path = 'example.xlsx'
df = pd.read_excel(file_path, sheet_name=None)

# 遍历每个工作表,拆分出单独的Excel文件
for sheet_name in df:
    file_name = sheet_name + '.xlsx'
    df[sheet_name].to_excel(file_name, index=False)

上述代码中,df = pd.read_excel(file_path, sheet_name=None)将原始Excel文件读取为一个字典类型的DataFrame,其中key为工作表名,value为对应工作表的内容。我们使用for循环遍历这个字典,然后使用to_excel()方法将每个工作表拆分成一个单独的Excel文件。

3. 批量合并Excel文件

接下来,我们需要将这些新生成的Excel文件批量合并成一个新的Excel文件。我们可以使用Pandas的ExcelWriter()方法创建一个新的Excel文件,使用for循环将每个Excel文件的内容读取到一个字典中,并使用to_excel()方法将这个字典中的内容写入到新建的Excel文件中。

示例代码如下:

# 批量读取拆分后的Excel文件
file_dir = './'
file_list = [f for f in os.listdir(file_dir) if f.endswith('.xlsx')]

# 创建新Excel文件
new_file = 'new_file.xlsx'
writer = pd.ExcelWriter(new_file)

# 遍历每个Excel文件,读取内容并写入新Excel文件
for file_name in file_list:
    sheet_name = file_name.split('.')[0]
    file_path = os.path.join(file_dir, file_name)
    df = pd.read_excel(file_path)
    df.to_excel(writer, sheet_name=sheet_name, index=False)

# 保存新Excel文件
writer.save()

上述代码中,file_list = [f for f in os.listdir(file_dir) if f.endswith('.xlsx')]获取了指定目录下所有后缀名为.xlsx的文件列表。我们使用for循环遍历这个文件列表,然后将每个文件的内容读取出来,并使用to_excel()方法写入到新建的Excel文件中。

4. 完整代码

下面是合并之前和合并之后的完整代码:

# 导入必要的库
import pandas as pd
import os

# 需要处理的原始Excel文件路径
file_path = 'example.xlsx'

# 读取原始Excel文件
df = pd.read_excel(file_path, sheet_name=None)

# 遍历每个工作表,拆分出单独的Excel文件
for sheet_name in df:
    file_name = sheet_name + '.xlsx'
    df[sheet_name].to_excel(file_name, index=False)

# 批量读取拆分后的Excel文件
file_dir = './'
file_list = [f for f in os.listdir(file_dir) if f.endswith('.xlsx')]

# 创建新Excel文件
new_file = 'new_file.xlsx'
writer = pd.ExcelWriter(new_file)

# 遍历每个Excel文件,读取内容并写入新Excel文件
for file_name in file_list:
    sheet_name = file_name.split('.')[0]
    file_path = os.path.join(file_dir, file_name)
    df = pd.read_excel(file_path)
    df.to_excel(writer, sheet_name=sheet_name, index=False)

# 保存新Excel文件
writer.save()

三、示例说明

1. 批量拆分单个Excel文件

假设我们有一个名为example.xlsx的Excel文件,其中有三个工作表:Sheet1、Sheet2和Sheet3,我们可以使用上述代码将其拆分成三个单独的Excel文件。拆分后,我们可以看到当前目录下多了三个新文件:Sheet1.xlsx、Sheet2.xlsx和Sheet3.xlsx。

2. 批量合并多个Excel文件

假设我们已经将每个工作表的内容拆分成了对应的单独Excel文件,现在我们需要将这些文件批量合并成一个新Excel文件。我们可以将这些拆分后的Excel文件放在同一个目录下,然后使用上述代码读取和合并这些Excel文件。合并后,我们可以看到当前目录下多了一个新文件:new_file.xlsx,其中包含了所有工作表的内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas实现批量拆分与合并Excel的示例代码 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 获取与请求不一致的频道 ID(python)

    【问题标题】:Get Channel Id discord with request (python)获取与请求不一致的频道 ID(python) 【发布时间】:2023-04-06 14:58:01 【问题描述】: def send_dm(): token = ‘i know, just not putting my token here’ message…

    Python开发 2023年4月7日
    00
  • python 实现以相同规律打乱多组数据

    要实现以相同规律打乱多组数据,可以通过随机数种子来实现。具体步骤如下: 导入 random 库 首先需要导入 Python 的 random 库,该库包含各种随机数生成函数。 import random 设置随机数种子 在开始生成随机数之前,需要设置随机数种子。可以选择为所有数据设置一个相同随机数种子,这样可以保证打乱的顺序是相同的,例如: random.s…

    python 2023年6月3日
    00
  • python urllib.request模块的使用详解

    Python urllib.request 模块的使用详解 Python 的 urllib.request 模块是 Python 自带的 HTTP 请求库,可以用于发送 HTTP 请求。本文将详细介绍 urllib.request 模块的使用方法。 发送 GET 请求 使用 urllib.request 模块发送 GET 请求非常简单,只需要调用 urlop…

    python 2023年5月15日
    00
  • 带有 Google App Engine Python 2.7 的 Django 1.2 中的自定义标签

    【问题标题】:Custom Tags in Django 1.2 with Google App Engine Python 2.7带有 Google App Engine Python 2.7 的 Django 1.2 中的自定义标签 【发布时间】:2023-04-05 12:11:02 【问题描述】: 使用 Webapp 在 Google App Eng…

    Python开发 2023年4月5日
    00
  • Python线性网络实现分类糖尿病病例

    Python线性网络实现分类糖尿病病例攻略 1. 介绍 本攻略将介绍如何使用Python实现一个线性神经网络来对糖尿病病例进行分类。经过训练后,该神经网络可以根据患者的人口学资料(例如年龄、BMI指数等)来预测其是否患有糖尿病。 本教程基于Python 3和NumPy库,并使用了Jupyter Notebook编写。我们将使用Pima Indians Dia…

    python 2023年6月3日
    00
  • Python 列表推导式与字典推导式的实现

    Python中的列表推导式和字典推导式是快速创建列表和字典的一种方式,使得代码更加简洁、可读性更高。本文将详细讲解这两种推导式的实现方法。 列表推导式 列表推导式的基本格式为: [expression for item in iterable] 其中,expression是要添加到列表中的元素;item是迭代器中的每个元素;iterable是可迭代的对象,例…

    python 2023年5月13日
    00
  • 详解Python 类变量与实例变量的陷阱

    Python中的类变量和实例变量是常见的面向对象编程的概念。类变量是定义在类中,并且被所有实例共享的变量。实例变量是定义在实例中,并且每个实例有它们自己的独立变量副本。 然而,在使用类变量和实例变量时,有一些陷阱需要注意,下面我们就来详细讲解这些问题以及如何正确使用类变量和实例变量。 类变量与实例变量的区别 类变量是所有实例共享的变量,关键字 class 定…

    python-answer 2023年3月25日
    00
  • 如何在Python中删除Oracle数据库中的数据?

    在Python中,我们可以使用SQLAlchemy模块删除Oracle数据库中的数据。以下是如何在Python中删除Oracle数据库中的数据的完整使用攻略,包括连接数据库、删除数据等步骤。同时,提供了两个示例以便更好理解如何在Python中删除Oracle数据库中的数据。 步骤1:安SQLAlchemy模块 在Python中,我们需要安装SQLAlchem…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部