数据岗位的小伙伴可能经常会遇到这样一个问题:多个来源返回的数据怎么整合到一个文件中?手动经常会出错,下面介绍一种利用Python处理的方式:

前期准备:

1、多个excel需要进行数据整理,保证文件的结构一致,这里主要用到的字段是:姓名、证件号、以及所在单位(文件名)

原始文件结构

2、因为每个返回回来的文件可能结构不同,所以进行第二步前一定要保证第一步处理好,接下来第二步,所有文件放在同一个文件夹,当然也可以做遍历展开所有文件夹,此过程本篇不做展开

3、开干。基本思路:获取每个excel中的所有sheet文件,并读取前两列的所有数据,将对应文件名称设为第三列(即为对应单位)。直接上代码:

# -*- coding: utf-8 -*-#将多个Excel文件合并成一个
import xlrd
import xlsxwriter
import os#打开一个excel文件
def open_xls(file):fh=xlrd.open_workbook(file)return fh#获取excel中所有的sheet表
def getsheet(fh):return fh.sheets()#获取sheet表的行数
def getnrows(fh,sheet):table=fh.sheets()[sheet]return table.nrows#读取文件内容并返回行内容
def getFilect(file,shnum):fh=open_xls(file)table=fh.sheets()[shnum]num=table.nrowsfor row in range(num):rdata=table.row_values(row)datavalue.append(rdata)return datavalue#添加列并返回行内容
def addcol(file,shnum):fh=open_xls(file)table=fh.sheets()[shnum]num=table.nrowsfilename = os.path.basename(file)index = filename.rfind('.')name = filename[:index]for row in range(num):acol.append(name)return acol#获取sheet表的个数
def getshnum(fh):x=0sh=getsheet(fh)for sheet in sh:x+=1return x#遍历文件夹下所有文件并输出文件名
def allxls(rootdir):allxls = []for parent, dirnames, filenames in os.walk(rootdir):for filename in filenames:if os.path.splitext(filename)[1] == '.xls':allxls.append(filename)return allxlsif __name__=='__main__':#定义要合并的excel文件列表
rootdir = "K:/7 数据分析/3 PYTHON/15 excel合并/广西"
allxls = allxls(rootdir)#存储所有读取的结果
datavalue=[]acol = []for fl in allxls:filename = os.path.basename(fl)fh=open_xls(fl)x=getshnum(fh)for shnum in range(x):print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个sheet表的内容...")rvalue = getFilect(fl,shnum)acol = addcol(fl, shnum)#定义最终合并后生成的新文件
endfile = xlsxwriter.Workbook('demo.xls')#创建一个sheet工作对象
ws=endfile.add_worksheet()for a in range(len(rvalue)):for b in range(0,2):c = rvalue[a][b]d = acol[a]ws.write(a, b, c)ws.write(a, b+1, d)endfile.close()print("文件合并完成")

执行结果:

alter table add column多个字段_利用Python将多个excel合并到一个文件中相关推荐

  1. alter table add column多个字段_SQL对表中字段的操作 alter

    ALTER TABLE 语句用于在现有表中添加.删除或修改列. 注意不同的数据库的语句有所不一样 增加和删除都基本一致. 进行修改表中字段的时候注意: 本文主要介绍 sqlserver/mysql/o ...

  2. alter table add column多个字段_ElementUI表格el-table表头固定自适应高度解决方案

    一.前言 ElementUI.iView都以相同的方式提供了表格组件表头固定的方法,即设置组件的height属性.表头固定很重要,就在于当表格数据项很多时,滚动条出现在表格组件内,而不是出现在表格组件 ...

  3. alter table add column多个字段_WordPress 在文章列表快速编辑中编辑自定义字段

    在快速编辑中添加自定义字段,通常我们不需要在 WordPress 后台文章列表的"快速编辑"菜单中进行更改,但有的时候如果可以把常用的设置添加到"快速编辑"菜单 ...

  4. MySQL 新增字段(alter table add column),报错:Duplicate entry

    问题 执行一个增加字段的DDL语句脚本时,报错,错误如下: Error 1062: Duplicate entry 'c51d3db8-59a5 2022-06-28 17:59:59' for ke ...

  5. excel python插件_利用 Python 插件 xlwings 读写 Excel

    Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...

  6. python关闭excel文件_利用Python读取和修改Excel文件(包括xls文件和xlsx文件)

    本文介绍一下使用Python对Excel文件的基本操作,包括使用xlrd模块读取excel文件,使用xlwt模块将数据写入excel文件,使用openpyxl模块读取写入和修改excel文件. 目录 ...

  7. python add picture显示过大_利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例...

    前言 最近的一个项目中需要在图片上添加文字,使用了OpenCV,结果发现利用opencv给图像添加文字有局限.可利用的字体类型比较少,需要安装Freetype扩展,比较复杂.而且不能用putText函 ...

  8. python合并两个excel文件_利用Python将多个excel文件合并为一个文件

    # -*- coding: utf-8 -*- #导入需要使用的包 import xlrd  #读取Excel文件的包 import xlsxwriter   #将文件写入Excel的包 #打开一个e ...

  9. python和excel数据分析_利用Python处理和分析Excel表中数据实战

    作为一个学习用Python进行数据分析的新手来说,通过本文来记录分享一些我在用Python中的pandas.numpy来分析Excel表中数据的数据清洗和整理的工作,目的是熟悉numpy以及panda ...

最新文章

  1. 【FE前端学习】第二阶段任务-基础
  2. confirm弹窗确定按钮换文字_第二章(第9节):弹窗处理
  3. golang中的读写锁
  4. C、C++的学习───思维方式的转变(2)
  5. sap-erp实施心得_实施动态代理-比较
  6. php连接mysql数据没反应_PHP mysql 数据库连接时 网页无法显示
  7. 【MyBatis笔记】0-MyBatis简介
  8. python 画风场 scipy_Python库之SciPy教程
  9. 计算机辅助普通话水平测试指导,计算机辅助普通话水平测试指南38563
  10. 强连通分量(tarjan求强连通分量)
  11. data 谷歌浏览器更改user 路径_安卓微信 7.0.13.2开启众测邀请,数据存储路径迁移...
  12. 利用plot_surface命令绘制复杂曲面入门详解
  13. java操作mysql临时表_MySQL 临时表
  14. 5e连不上服务器如何修改Dns,Ubuntu 18.04 永久修改DNS的方法
  15. smart显示无服务器,RAKsmart美国服务器常见的问题和解决
  16. HTTP状态码(200、302、404、503)
  17. 【C语言上机练习题目-代码+运行结果】
  18. iar stm32_STM32强大的生态,在这里一起总结!
  19. ipv4和ipv6连通性相关工具实例
  20. Redis 按关键字批量删除

热门文章

  1. linux系统用户迁移
  2. PHP用于登录的类,基于MySQL
  3. java占位符填充_Java使用freemark生成word
  4. 写sql语句的经验之谈
  5. 微信视频开发jquery mobile
  6. 老年人计算机应用基础,国开电大老年心理健康作业一参考答案
  7. java 线程分组_Java多线程可以分组,还能这样玩!
  8. [转载] JAVA笔记_(Day04,Day05)函数数组
  9. Java DataInputStream readUnsignedByte()方法(带示例)
  10. python中的替换函数_python:替换模块类中的函数