Python pandas实现excel工作表合并功能详解
作者:qq5d4147c106bd7 发布时间:2021-05-23 01:33:40
标签:Python,pandas,excel
import os,pandas as pd,re
#1.获取文件夹下要合并的文件名
dirpath = '文件夹地址'
#工作表3特殊处理 需要开始下标和结束下标
begin = 231
end = 238
excel_names = os.listdir(dirpath)
#2.获取文件内容
sheet_1_merge = []
sheet_2_merge = []
sheet_3_merge = pd.DataFrame([0,0,0,0,0,0,0])
for excel_name in excel_names:
#绝对路径
excel_path = dirpath+excel_name
#dropna(axis=0, how='all')行全部为空得删除
#获取工作表1内容
sheet_1=pd.read_excel(excel_path, sheet_name=1, header=None)[2:][range(9)].dropna(axis=0, how='all')
sheet_1_merge.append(sheet_1)
获取工作表2内容
sheet_2=pd.read_excel(excel_path, sheet_name=2, header=None)[2:][range(1,7)].dropna(axis=0, how='all')
sheet_2_merge.append(sheet_2)
# 获取工作表3内容
sheet_3 = list(pd.read_excel(excel_path,sheet_name=3,header=None)[begin:end][1])
excel_name = re.findall('\d-(.*).xlsx', excel_name)[0]
sheet_3_merge.insert(1,excel_name,sheet_3)
print(sheet_1,'\n',sheet_2,'\n',sheet_3)
#保存合并内容
#axis=0,ignore_index=True合并行 忽略原来的下标
sheet_1_merge = pd.DataFrame(pd.concat(sheet_1_merge,axis=0,ignore_index=True))
sheet_2_merge = pd.DataFrame(pd.concat(sheet_2_merge,axis=0,ignore_index=True))
#columns主要是为了按照已有得排序,方便整理
sheet_3_merge = pd.DataFrame(sheet_3_merge,columns=['李1','李2,'李3','彭4','杨5','夏6',...,'杜34','叶35'])
writer = pd.ExcelWriter('C:/Users/zhuozhe/Desktop/merge.xlsx')
sheet_1_merge.to_excel(excel_writer=writer,sheet_name='merge_1')
sheet_2_merge.to_excel(excel_writer=writer,sheet_name='merge_2')
sheet_3_merge.to_excel(excel_writer=writer,sheet_name='merge_3')
writer.save()
writer.close()
合并文件包含三个工作表:完成任务,下周计划,本周工时(包含了全年的数据,所以需要抽取)。
合并后得文件,如图:
来源:https://blog.51cto.com/14477836/2433364


猜你喜欢
- 前面提到了银行转账这个场景,展示了一个比较耗时的转账操作。这篇继续转帐,下面展示一段程序,多个线程的操作都更改了amount变量导致运行结果
- 目录jQuery的$.ajaxWebpack时代的开始深入了解Promise消灭嵌套await-to-js总结jQuery的$.ajax在开
- 前言最近微信小游戏跳一跳大热,自己也是中毒颇久,无奈手残最高分只拿到200分。无意间看到教你用Python来玩微信跳一跳一文,在电脑上利用a
- 时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的。那么我们使用Python如何调用Linux的S
- bootstrap-table简介•1.1、bootstrap table简介及特征: &nb
- 目录背景方案一:老数据备份方案二:分表方案三:迁移至tidb重点说下同步老数据遇到的坑最终同步脚本方案总结背景由于历史业务数据采用mysql
- TensorFlow训练时,遇到内存不断增长,最终导致内存不足,进程被杀死。在这里我不准备对造成这一现象的所有原因进行探讨,只是记录一下我在
- 构造查询条件worm是一款方便易用的Go语言ORM库。worm支Model方式(持结构体字段映射)、原生SQL以及SQLBuilder三种模
- python中使用.py配置文件 一、格式:创建一个config.py文件在文件中加配置:DEBUG=Truedm_connect = {
- 一位资深的设计师曾经向我抱怨,说老板不仅让他做“设计”工作,还让他做“制作”工作,真是很烦。言下之意,“制作”还要一个资深设计师亲自上阵,未
- 远程服务器配置可以使得数据库管理员在服务器以外的主机上连接到一个SQL Server实例,以便管理员在没有建立单据连接的情况下在其他的SQL
- 1. 解决思路首先要获得这张验证码的图片,但是该图片一般都是用的js写的,不能够通过url进行下载。解决方案:截图然后根据该图片的定位和长高
- 本文实例为大家分享了TensorFlow实现简单线性回归的具体代码,供大家参考,具体内容如下简单的一元线性回归一元线性回归公式:其中x是特征
- 作为前端开发工程师,平时对于Dom的查找遍历和操作是家常便饭。对于优秀的前端来说,也肯定早已有了自己的一套方法来封装这些重复的操作。但是,现
- groupby官方解释DataFrame.groupby(by=None, axis=0, level=None, as_index=Tru
- 一、官方文档介绍官网nn.Conv2d:对由多个输入平面组成的输入信号进行二维卷积二、torch.nn.Conv2d()函数详解参数详解to
- ppt通过其精美的可视化技巧以及良好的演示效果,成为了职场人士的必备技能。ppt的设计是一门大学问,无论是设计技巧,还是操作方法,都衍生出了
- 什么是事务?事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。数据库事务通常包含了一个序列的对数据库的读/写操作
- 前言之前我们在路由匹配的时候,一个url对应一个函数,其实我们还可以一个url对应一个类,这个就是CBV,下面我们来简单的介绍一下CBV一、
- 类的定义# class是定义类的关键字,ClassName为类的名称class ClassName:# 在这里写其他内容passclass