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

yizhihongxing

下面是详细讲解“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日

相关文章

  • python try except返回异常的信息字符串代码实例

    当 Python 程序出现异常时,可以使用 try except 语句来处理异常。在 try 代码块中编写可能会出现异常的代码,在 except 代码块中处理异常,使程序出现异常后不会直接崩溃退出。在 except 代码块中,可以使用 str()、repr() 或 format() 函数等方法将异常对象转换为字符串返回异常信息。 下面是一个处理除零异常的示例…

    python 2023年5月13日
    00
  • 教你Pycharm安装使用requests第三方库的详细教程

    以下是关于在PyCharm中安装和使用requests第三方库的详细攻略: 在PyCharm中安装requests第三方库 PyCharm是一种流行的Python集成开发环境(IDE),可以用于开发Python应用程序。以下是在PyCharm中安装requests第三方库的步骤: 打开PyCharm 首先,打开PyCharm。 创建Python项目 在PyC…

    python 2023年5月14日
    00
  • 微信跳一跳游戏python脚本

    以下是微信跳一跳游戏Python脚本的完整攻略,包含了脚本的实现方式、使用方法以及示例说明。 1. 脚本的实现方式 微信跳一跳游戏Python脚本的实现方式是通过ADB(Android Debug Bridge)工具来模拟手机屏幕触摸事件。ADB是Android SDK中的一个工具,它可以通过USB连接将Android设备与计算机连接起来,并提供一系列命令来…

    python 2023年5月14日
    00
  • Python编写的com组件发生R6034错误的原因与解决办法

    Python编写的com组件发生R6034错误的原因与解决办法 原因 导致Python编写的com组件发生R6034错误的原因是使用到了不兼容的C++运行时库,具体来说是Python使用了某些版本的Microsoft Visual C++ Redistributable运行时库,而我们在使用该COM组件时,却在环境变量中设置了另外一个版本的运行时库,如下所示…

    python 2023年5月13日
    00
  • Python之random库的常用函数有哪些

    接下来我会详细讲解“Python之random库的常用函数有哪些”的完整攻略。 一、背景介绍 Python之random库是Python标准库中的一个模块,主要用来生成随机数。它提供了各种生成随机数的函数,包括生成整数、浮点数、随机序列等。其中,常用的函数包括: 二、常用函数介绍 1. random() random()函数用于生成0到1之间的随机浮点数。示…

    python 2023年6月3日
    00
  • python实战游戏之史上最难最虐的扫雷游戏没有之一

    Python实战游戏之史上最难最虐的扫雷游戏攻略 简介 扫雷是一款经典的益智游戏,对玩家的思维和操作能力有很高的要求。本文将详细讲解Python实现的史上最难最虐的扫雷游戏攻略。 游戏规则 扫雷游戏是由一定数量的雷区和剩余区域组成的网格。玩家需要通过逻辑推理在不触雷情况下打开所有非雷区的格子。每个非雷区周围都会有一个数字表示该格子周围的雷数。当玩家确定一个雷…

    python 2023年6月5日
    00
  • 利用Pygame绘制圆环的示例代码

    下面是详细讲解“利用 Pygame 绘制圆环的示例代码”的完整攻略。 1. 确定环形的大小和位置 首先要确定环形的大小和位置,可以使用 Pygame 的 Surface 类来创建一个环形。具体地,在 Pygame 中,Surface 是一个能够呈现图像的对象。我们可以使用 Surface 的 blit 方法将其中一个图像贴在另一个图像上。 假设我们想要绘制一…

    python 2023年5月18日
    00
  • Python中声明只包含一个元素的元组数据方法

    当我们需要一个只包含一个元素的元组时,例如(1,),需要在元素后面加上逗号来使其成为元组而不是整数。 下面是Python中声明只包含一个元素的元组数据方法的完整攻略: 方法1:使用逗号在元素后面声明 在使用时,只需要在元素后面加上逗号即可声明一个只包含一个元素的元组。如下所示: my_tuple = (1,) print(type(my_tuple)) # …

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