实战|Python六行代码实现多个Excel合并

用Python将多个excel表格合并为一个表格 生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个。诸如此类的问题有很多。除了人工将所有表格的内容一个一个复制到汇总表格里,但作为一名信奉完美主义的程序猿,就算多花费3个小时写程序,也不舍得花时间做这样重复无脑的工作。 阅读详情

项目背景

事情是这样的,某事业单位员工A需要每天从业务系统中导出订单表(表结构一致),并最终汇总到一个Excel中进行数据分析。他从系统中导出的文件结构为一个主目录orders,主目录下两个子目录分别为orders1和orders2,子目录下又有很多个订单表,具体如图所示:
在这里插入图片描述
他想实现以下几个需求:
1.合并指定目录下的所有订单表;
2.合并指定目录下的指定订单表;
3.合并指定目录下的指定订单表的指定字段;
4.合并所有目录下的所有订单表。

我看完需求后,有点蒙,甚至感觉有点像在学绕口令。
在这里插入图片描述

我连忙喝了杯海外上市的国产咖啡冷静了一下,突然有了些许头绪。为了不让思绪溜走,赶紧打开了order1.xlsx看下表结构,长这样:
在这里插入图片描述

项目实操

一、合并指定目录下的所有订单表

我以合并orders1目录下的所有订单表为例来进行操作。

首先,导入文件操作相关库。

#@Time : 2020/5/25 2:18 下午
#@Author : 菜J学Python
#@File : concat_excel.py

import pandas as pd
from pathlib import Path

然后,获取orders1目录下所有订单表。

files = Path("orders/orders1").glob("*.xlsx")

接着,依次读取所有订单表并创建DataFrame。

dfs = []
for f in files:
    dfs.append(pd.read_excel(f))

将多个DataFrame合并为一个。

df = pd.concat(dfs)

写入Excel新文件result1.xlsx,并删除索引。

df.to_excel("result1.xlsx",index = False)

OK,合并成功。

细心的你可能已经发现,J哥已经写了足足8行代码。说好的6行代码能搞定呢?
在这里插入图片描述
咱不慌,优化以上代码,如下:

import pandas as pd
from pathlib import Path
files = Path("orders/orders1").glob("*.xlsx")
dfs = [pd.read_excel(f) for f in files]
df = pd.concat(dfs)
df.to_excel("result2.xlsx",index = False)

需求1搞定。

二、合并指定目录下的指定订单表

所有订单表都会合并了,只合并几个表算啥?只要指定好对应的文件路径就好啦。废话不多说,直接上代码:

dfs = [pd.read_excel(f) for f in ('orders/orders1/order1.xlsx','orders/orders1/order2.xlsx')]
df = pd.concat(dfs)
df.to_excel("result3.xlsx",index = False)

以上代码实现了orders1目录下的order1.xlsx和order2.xlsx合并。

需求2搞定。

三、合并指定目录指定订单表的指定字段

这个听起来有点绕,咱用正常人的口吻改下表述。比如还是orders1目录,咱们只合并order1.xlsx的品目字段和order2.xlsx的数量、单价字段。

table1 = pd.read_excel("orders/orders1/order1.xlsx")
table2 = pd.read_excel('orders/orders1/order2.xlsx')
part1 = table1.iloc[:,2]  #取order1.xlsx第3列的所有行
part2 = table2.iloc[:,[8,9]]  #取order2.xlsx的第9、10列的所有行
result4 = pd.concat([part1,part2],axis = 1 ) #合并

以上注意axis=1表示横向合并。打印一下result4,长这样:
在这里插入图片描述
实现倒是简单,不过J哥转念一想,这操作完全不符合业务逻辑啊。So,不管,就这样吧。
需求3搞定。

四、合并所有目录下的所有订单表

简单说下这个需求,就是把orders目录下orders1和orders2里面的所有Excel共计10个订单表合并在一个Excel里。
在这里插入图片描述
好像确实说复杂了…

实现这个需求要用到os库的walk方法。

先上代码再解释:

import pandas as pd
import os
file_list = os.walk("./")
result = []

for dir_path,dirs,files in file_list:
    for f in files:
        file_path = os.path.join(dir_path,f) #重构文件路径
        print(file_path)
        if 'xlsx' in f:    #只要xlsx文件
            df = pd.read_excel(file_path) #将Excel转成DataFrame
            result.append(df)
print(result)

df = pd.concat(result) #多个DataFrame合成一个
df.to_excel("result4.xlsx",index=False) #导入到一个新的Excel中

通过os.walk()方法,可以查询到目录下不同文件夹中的文件。dir_path代表的是文件路径,dirs代表的是目录下的文件夹,files代表的是目录下的文件。这里J哥加了一个条件判断,因为print(file_path)时发现里面多了个没用的东东。

需求4搞定。

结 语

感觉Excel合并在我们的日常工作和生活中还是会经常用到的,如果你只是想合并几个Excel,我强烈建议你手动合并,你的手速肯定比我敲代码快。当然即使有大量的表格需要合并,VBA也是可以搞定的,虽然我没试过,但我觉得代码量肯定比Python多,毕竟Python只要6行代码啊!

在学习python中有任何困难不懂可以微信扫描下方优快云官方认证二维码加入python交流学习
多多交流问题,互帮互助,这里有不错的学习教程和开发工具。

👉[[优快云大礼包:《python安装包&全套学习资料》免费分享]](安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

四、实战案例

五、面试资料



最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。

python实现将多个表格多个sheet页合并成为一个表格 sheet页数不变,只是将多个表格对应sheet页合并。 阅读详情

相关推荐

OpenClaw企业级知识中枢:1Panel部署+飞书机器人集成实战

企业知识管理面临的核心挑战是搜索不准、触达低效、运维脆弱与反馈缺失。RAG系统要真正落地,不能只关注大模型或向量检索,而需构建端到端的工程化闭环——从确定性部署(如1Panel封装Docker编排与健康检查)、上下文感知的交互入口(如飞书机器人支持会话式追问与权限穿透),到结构化解析、语义增强与行为驱动的搜索调优。本文围绕OpenClaw这一面向中大型团队的企业级知识中枢,详解其与1Panel、飞书机器人的深度协同机制,覆盖PDF/Word格式治理、技术术语向量对齐、同义词动态优化等高频痛点,为IT负责人、

weixin_34109408的博客 443

6. 使用python将多个Excel文件合并到同一个excel-附代码解析

【目录】某文件夹中有如下5个Excel:在这里插入图片描述 的内容如下:5个Excel仅数据不一致,框架内容相同。目标任务是将5个Excel合并成一个Excel。源代码文件: 【终端输出】 4. 代码解析 4.1 导入库 导入pandas库,并将其别名设置为。是一个关键字,用于给导入库指定一个别名。别名的作用是引用pandas库中的函数和类,不必每次都写完整的,可以用别名代替。 导入库,os库用于操作文件和目录。 创建一个空列表,用于存储后面读取的Excel数据。【总结】是一个Python的内置函数,用于

weixin_63986098的博客 2万+

MuleSoft AI编排:企业级大模型工作流治理实践

AI编排(AI Orchestration)是将大语言模型深度融入企业核心业务系统的关键范式,其本质是通过标准化数据流、可审计调用链与弹性服务治理,解决AI落地中的数据孤岛、系统耦合与合规失控三大痛点。它超越简单API调用,强调双向可追溯、熔断降级、Prompt版本化与结构化响应校验等工程能力。在MuleSoft等企业集成平台支撑下,AI从实验性插件升级为具备SLA保障、审计留痕与故障自愈的生产级服务组件,广泛应用于智能工单摘要、合同审查、客服决策等高可靠性场景。

weixin_30908941的博客 332

如何使用python合并多个excel文件

适用场景 当你有多个列名一致的excel文件的时候,你想要把多个excel文件合并成一个excel文件 Python代码实现 首先导入需要的库 import pandas as pd import os 将所有需要合并的excel放进一个单独的文件夹里 定义一个函数 def append(path): #path:所有需要合并的excel文件所在的文件夹 filename_excel = [] # 建立一个空list,用于储存所有需要合并的excel名称 frames = [] #

xili1342的博客 2万+

AI搜索的本质:从信息检索到意图执行的技术演进

搜索已不再是简单的关键词匹配,而是一种基于用户意图的理解与执行过程。其核心原理正从传统TF-IDF和PageRank的静态文档相似度计算,转向融合上下文、设备、行为等多维信号的动态可信度建模。这一转变带来显著技术价值:大幅降低用户认知负荷、提升任务完成率、重构广告与知识服务的信任机制。典型应用场景覆盖政务办事、医疗故障诊断、教育路径规划及企业知识库问答等高可靠性需求领域。本文深入剖析支撑AI搜索落地的三大技术支柱——意图理解层的语义锚点设计、知识融合层的RAG幻觉抑制策略、行动执行层的原子化服务编排,并结合

weixin_33749131的博客 371

4种方法用Python批量实现多Excel多Sheet合并

在数据处理中,经常需要将多个Excel文件中的多个工作表进行合并。以下介绍了4种方法,使用Python批量实现多Excel多Sheet的合并。

这家伙很懒,什么都没有留下 1万+

python 二维表合并_实战|Python六行代码实现多个Excel合并

大家好,我是J哥,也可以叫我菜J,专注原创,致力于用浅显易懂的语言分享网络爬虫、数据分析、可视化、自动化办公等干货,希望人人都能学到新知识。项目背景事情是这样的,某事业单位员工A需要每天从业务系统中导出订单表(表结构一致),并最终汇总到一个Excel中进行数据分析。他从系统中导出的文件结构为一个主目录orders,主目录下两个子目录分别为orders1和orders2,子目录下又有很多个...

weixin_32075745的博客 358

10米分辨率土地覆盖数据在国土空间规划中的应用与Python处理实践

土地覆盖数据是国土空间规划、生态评估与土地利用调查的基础底图。随着深度学习与高分辨率遥感影像的融合,基于Sentinel-2影像的10米全球土地覆盖产品得以问世,其分类精度显著优于传统30米数据,能够清晰刻画丘陵地带破碎地块与城乡交错区的细节。这类数据通常以Web墨卡托投影存储,但在实际工程中需要进行坐标系转换、省级裁剪与面积精确统计。本文围绕ESRI发布的2020年浙江10米土地覆盖数据资源包,从深度学习的分类原理讲起,剖析TIF、TFW、VAT等栅格文件的组织逻辑,并重点介绍用Rasterio与QGIS

weixin_29531177的博客 180

Python 六行代码优雅合并excel文件

该文件下存在一批excel文件,需要汇总到一个excel里面去。

weixin_56314697的博客 278

vivado2020.2安装教程:Windows平台完整指南

手把手带你完成vivado2020.2安装教程,覆盖下载、配置到验证全过程,解决常见安装问题,确保在Windows平台顺利部署开发环境,适合初学者快速上手。

weixin_42607969的博客 1344

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

ProceduralMan的博客 7409

如何对Excel列快速移动或对调?四种方法给你一点解决问题的灵感

工作中遇到关于excel的一个小小的问题,如下有32行71列数据,现在需要对71个列进行对调,如果是你,你会怎么解决?如果一列一列拖动,可以解决问题但是工作量大容易出错,所以得想个简便的方法。因为列标题恰好是日期,可以通过排序的方式对调,不过好像只有行排序,没有对列进行排序的功能菜单。那怎么办呢?

Data_lukyo的博客 3138

feko金属球远场RCS双站

feko金属球远场RCS双站

a264672的博客 6909

先创建一个空的dataframe,然后在拼接其他的dataframe

先创建一个空的dataframe,然后在拼接其他的dataframe

Ling_Ze的博客 736

Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别

      最近在做蓝牙开发,刚接触时傻傻的分不清经典蓝牙和低功耗蓝牙的区别,一直用开发低功耗蓝牙的方法去连接经典蓝牙设备,最后当然是一直连接不上了。在此记录下经典蓝牙和低功耗蓝牙的区别和联系。 Android中的蓝牙         说到Android中的蓝牙,大家听到的可能有蓝牙1.0、蓝牙2.0、蓝牙3.0、蓝牙4.0之类的以数字结尾的蓝牙版本号,而实际上,在最新的标准中,已经不再使用数...

zqf_888的博客 4万+

YOLOv8的特征蒸馏代码应用讲解(CWD/MGD/mimic/在线蒸馏/逻辑蒸馏)

基于YOLOv8的逻辑蒸馏、特征蒸馏、在线蒸馏等方法代码介绍。

qq_41920323的博客 2582

导出mysql中的邮箱_Python 2.7.12从mysql数据库导出数据并作为附件发送到邮箱

由于需要从mysql数据库中导出到excel表并发送邮件做的这个,其中参考了网上很多的例子因为之前是需要做的发送邮件,所以这次就直接合并在一起了。有些应该改的但是我复制过来也就没有去管了# -*- coding: utf-8 -*-import MySQLdbimport xlsxwriterimport base64# 这是我连接数据库的查询语句from HRSystem.classes.api...

weixin_39955925的博客 399

hadoop 切片机制详解

hadoop切片机制详解

congge 1万+

mysql查询结果作为附件_Python 2.7.12从mysql数据库导出数据并作为附件发送到邮箱...

由于需要从mysql数据库中导出到excel表并发送邮件做的这个,其中参考了网上很多的例子因为之前是需要做的发送邮件,所以这次就直接合并在一起了。有些应该改的但是我复制过来也就没有去管了# -*- coding: utf-8 -*-import MySQLdbimport xlsxwriterimport base64# 这是我连接数据库的查询语句from HRSystem.classes.api...

weixin_42511769的博客 263

学习STM32的DS18B20温度传感器

该函数首先复位传感器,然后发送跳过ROM命令和转换命令,并等待转换完成。接下来,它再次复位传感器,发送跳过ROM命令和读取温度命令。最后,它读取温度值的最低字节和最高字节,并将其组合成16位温度值。传感器的VCC引脚连接到STM32的3.3V电源,GND引脚连接到GND,而数据引脚连接到任何一个IO引脚。需要注意的是,示例代码中使用了一个简单的延时函数来等待转换完成。实际上,您可能需要使用定时器或其他更精确的延时方法来实现更准确的延时。下面是一个示例代码,演示如何读取DS18B20传感器的温度值。

m0_75244442的博客 1180

RHCA III之路---EX436-1

由于ha这门课有大量命令需要在3个节点上同步执行.如果执行history会出现前面数字,复制多行会有些麻烦.lab环境是nodea,nodeb,nodec 考试环境是node1,node2,node3。就可以快速将历史命令实现可多行复制,当然也可以用awk进行分割,个人喜好随意。技巧只能加快答题速度,对考试得分帮助不大。确认3个红框内容一致,且没报错即可。再执行一个histrory。3个node节点上运行。这样就能1次复制3行。

Q先生 1002

Python 2.7.12从mysql数据库导出数据并作为附件发送到邮箱

由于需要从mysql数据库中导出到excel表并发送邮件做的这个,其中参考了网上很多的例子 因为之前是需要做的发送邮件,所以这次就直接合并在一起了。有些应该改的但是我复制过来也就没有去管了 # -*- coding: utf-8 -*-import MySQLdbimport xlsxwriterimport base64 # 这是我连接数据库的查询语句 from HRSystem....

weixin_30748995的博客 217

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数据科学实验总结

value_counts()方法是pandas.Series对象的一个方法,它会统计Series中每个不同值出现的次数,并返回一个新的pandas.Series对象,其中索引是hod列中的不同值,值是这些值出现的相应次数。此时频数列的列名默认为0,通过rename()函数可以将列名重新命名columns={'旧的列名1' :'新的列名1' , '旧的列名2' : '新的列名2'}例如,如果'target'列代表不同的鸢。它返回一个包含两个元素的元组,第一个元素表示数据框的行数,第二个元素表示数据框的列数。

A20031115的博客 1307

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Python map、filter、zip:数据流处理的底层原理与工程实践

map、filter、zip 是 Python 中支撑函数式数据处理的核心内置函数,其本质并非语法糖,而是基于惰性求值、迭代器协议和内存友好的数据流编程范式。它们分别实现一元变换、条件筛选与结构对齐,构成轻量但完备的数据处理最小集。相比列表推导式,三者在流式场景(如大文件解析、API响应聚合、实时日志过滤)中显著降低内存峰值,并天然适配 pandas 和 NumPy 的向量化设计逻辑。掌握其参数绑定规则、返回迭代器特性及常见陷阱(如 zip 截断、filter 布尔语义、map 一次性耗尽),是写出高性能、

weixin_32520095的博客 291

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

国赛AI新规落地,AI工具使用声明合规写法与一键生成模板

随着各类国家级学科竞赛、创新创业大赛陆续落地AI新规,“AI工具使用声明”成为提交材料中的刚性要求。不少参赛者因声明写不具体、信息模糊而被评审组打回,甚至面临违规风险。AI工具使用声明的本质,是通过公开透明地记录使用场景、工具名称、使用方式、占比、人工审核过程等核心要素,向评委证明作品中的原创边界与真实工作量。合规声明不仅能规避学术不端质疑,也能在AI生成内容检测与相似度比对中保护参赛者自身权益。对高校师生和竞赛组织者而言,掌握结构化填写方法、建立日常AI使用记录习惯、善用模板与自动化批量生成工具,是适应新

weixin_34416754的博客 422

python学习—合并多个Excel工作簿表格文件

本文使用python编写代码,用于合并位于同一文件夹下的多个Excel工作簿文件,极大地提升数据整合效率。无需繁琐的手动操作,一键运行,即可将不同工作簿中的数据汇总到一个主工作簿中,无论是数据分析、报表制作还是信息汇总,都能轻松应对。支持包含多个sheet表格的工作簿,支持中文。

qq_34582066的博客 7524
上一篇: Python爬虫 | 一条高效的学习路径
下一篇: 惊呆了!我用 Python 可视化分析和预测了 2022 年 FIFA世界杯
智泊AI官方
博客等级 码龄6年 8637粉丝 2667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值