Python汇总多个Excel表格文件生成一个Excel表格

 内容简介

在一些简单处理EXCEL表格工作,会遇到汇总大量EXCEL表格,并且将表格进行汇总整合到一个EXCEL表格中,尤其是在参加一些学科竞赛的过程中,像参加一些数模竞赛,需要大量的统计数据,那么以下代码就完全符合小伙伴们的需求。

相信大家在处理多个EXCEL表格,想将表格进行汇总的时候,如果手动去汇总的话,耗时,费力,假如汇总20个EXCEL表格,意味着要重复20遍Ctrl+C 和 Ctrl+v 最快也需要20分钟的时间才能完成任务  而使用下边这个代码不到1秒就可以完成工作   当然如果需要整合上千EXCEL文件,代码运行时间,自然也需要更长一点

下面这个代码适应于所有EXCEL表格的汇总工作 

代码图

import pandas as pd
import os

combined_data = pd.DataFrame()

folder_path = 'get_list'

file_names = os.listdir(folder_path)

for file_name in file_names:
    file_path = os.path.join(folder_path, file_name)
    df = pd.read_excel(file_path)

    combined_data = pd.concat([combined_data, df], ignore_index=True)

combined_data.to_excel('combined_data.xlsx', index=False)

以上就是汇总EXCEL表格的全部代码,代码内容非常的简短,这是我在处理工作的时候写出来的,当时需要整合500多个EXCEL文件,我感觉手动根本没有办法做,于是写了这个代码来与大家进行分享

如果对代码感兴趣的小伙伴,下面将为大家进行简单的讲解一下代码(纯小白都可以看懂)

代码讲解

一、第一部分

import pandas as pd
import os

首先是需要进行导入库,一共需要导入两个库,分别是pandas和os库(python常用的三大库:Numpy、pandas和Matplotlib

pandas库 

首先为小伙伴们讲解一下pandas库,pandas有的小伙伴会相成大熊猫,No No

在python语言中,pandas库数据分析中是非常常用的库,在数据预处理、缺失值填补、时间序列、可视化等方面都有应用。

有的小伙伴会有疑惑,在import pandas 后面为什么要加上 as pd 呢?

原因是在下边代码导入库的时候为了方面,一般使用pd  将6个字母简化成2个字母  没别的也只为了方便!

OS库 

然后为小伙伴们讲解os库,os模块为多操作系统的访问提供了相关功能的支持,涉及对文件相关操作功能的实现,系统访问path路径的操作。

说白了这个os库就是,在代码中进行访问系统(windows、linux)中的文件,在这里也就是咱们需要处理的EXCEL文件。

二、第二部分

combined_data = pd.DataFrame()

这行代码创建了一个空的Pandas数据框combined_data,用于后续存储合并的数据。

当然这个combined_data是一个文件名,可以进行随意的定义,没有特殊的含义

pd的话就是前边导入的pandas这个库,后面的DataFrame() 是pandas库中的函数 

(注意:1、在python语言中,库与函数之间通过英文字符.间隔

               2、所有的函数后边都需要加上英文的() 符号  )

三、第三部分

folder_path = 'get_list'
file_names = os.listdir(folder_path)

 获取文件夹路径

folder_path = ‘get_list’   

这一行代码中的  folder_path 定义的一个变量用来表示文件夹的路径(文件夹(文件夹名:get_list)就是那500个EXCEL文件的文件夹)

获取文件名称

file_names = os.listdir(folder_path)  

os.listdir() 函数用于返回指定目录中的文件和目录的名称列表。

也就是说os库中的listdir()函数,是将get_list这个文件夹中的所有文件名,全部提取成列表的形式

解释:

(那为什么listdir()函数,括号中是folder_path呢? 是因为在获取文件夹路径时,也就是上一行代码中将这个文件夹名get_list赋值给变量folder_path了)

四、第四部分

这里就到了最核心的部分

for file_name in file_names:
    file_path = os.path.join(folder_path, file_name)
    df = pd.read_excel(file_path)

    combined_data = pd.concat([combined_data, df], ignore_index=True)

废话不多说,直接说重点:

第一行代码:

用到了for循环 也就是最基础的 for i in range();

在这里file_name充当的是i     代表的是遍历的文件名称

file_names这个是在第三部分中写到的:所有的文件名列表

第二行代码:

这行代码使用了 os.path.join() 函数,它的作用是将多个路径组合成一个完整的文件路径。在这个例子中,folder_path 是文件夹的路径,file_name 是文件名(用到了第三部分中的两个变量名称)os.path.join(folder_path, file_name) 将这两部分路径连接起来,形成完整的文件路径file_path。这样做的好处是,它会根据操作系统的不同自动添加正确的路径分隔符(比如在Unix系统下是/,在Windows系统下是\),确保生成的路径在不同操作系统下都是有效的。

上边是比较专业的语言    上边的意思就是获取file_path文件路径  在第三部分,像文件名和文件夹路径,全部都铺垫好了   现在就开始使用for 循环进行一个调用  将这些文件一一进行调用

第三行代码:

pandas库中的 pd.read_excel()函数,用于从 Excel 文件中读取数据并创建一个 DataFrame 对象 df。

简单说就是read_excel()是pandas库的一个内置函数,这个函数的作用是提取EXCEL中的数据,然后将这个数据赋值给df变量。(那么这个df也是自己进行定义的一个变量名,但是这里尽量写成df,因为是和第二部分中的DataFrame相对应的,下面将会讲解是如何对应的

第四行代码:

combined_data = pd.concat([combined_data, df], ignore_index=True)

pd.concat()这个函数用于将两个或多个 DataFrame 连接在一起,形成一个新的 DataFrame。

将现有的 combined_data  DataFrame df  DataFrame 沿着行的方向(垂直方向)连接起来,生成一个新的 DataFrame combined_data

在第二部分的时候,combined_data这个变量表示的是单个空的DataFrame, pd.concat([combined_data, df]) 这一块代码就是将df与combined_data进行一个对应

参数 ignore_index=True 表示忽略连接时的索引,新生成的 DataFrame 将重新分配新的整数索引。  也就是说每一个EXCEL文件都有表头名,这里是将表头名进行删除的一个操作 

直白来说,这一行代码不是在for循环里嘛,每次循环都会将新的文件数据加入到combined_data变量中去  不断的循环,里边的信息就会不断的进行增加(这里理解起来 稍微有点抽象,小白可以看着完整的代码自己静下来好好的思考一下)

五、第五部分

combined_data.to_excel('combined_data.xlsx', index=False)

这行代码使用了 DataFrame 对象的 to_excel() 方法,用于将 DataFrame 中的数据保存到 Excel 文件中。   因为combined_data这个是使用了DataFrame的数据储存方式进行储存的,因此使用to_excel() 方法进行EXCEL表格的保存

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值