精华内容
下载资源
问答
  • 主要为大家详细介绍了Python个excel表格合并为一个表格的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python 自动化合并excel表格简单实现代码 需要安装一下pandas库 python3.0版本以上
  • 将一个文件夹中的excel表格合并成我们想要的形式,主要要pandas中的concat()函数 思路 用os库将所需要处理的表格放到同一个列表中,然后遍历列表,依次把所有文件纵向连接起来。 最开始的第一种思路是先拿一个文件...
  • 利用python实现Excel表格合并

    千次阅读 2020-10-18 19:58:02
    本文将详细展示利用python合并多Excel多sheet的方法以及代码。 方法: 利用第三方模块,xlsxwriter(用于将数据写入表中)、xlrd(用于读取文件)。一个Excel中有多个Sheet,也需要合并。 正文: 准备需要合并的...

    本文将详细展示利用python合并多Excel多sheet的方法以及代码。

    方法:

    利用第三方模块,xlsxwriter(用于将数据写入表中)、xlrd(用于读取文件)。一个Excel中有多个Sheet,也需要合并。

    正文:

    准备需要合并的Excel表格以及要写入的一个空表。此处,分别命名为测试1、测试2。将要写入的表命名为“合并”。将Excel中写入一些信息,进行合并测试的Excel如下图所示:
    \qquad Excel1Sheet1:Excel1Sheet1 \qquad Excel2Sheet1:Excel2Sheet1
    \qquad Excel2Sheet2Excel2Sheet2
    最终,经过合并后得到的表格如图:
    合并
    下面展示具体过程:
    \qquad 在开始前,需要导入xlswriter与xlrd模块。可以参考我的另一篇博客。导入第三方模块
    导入需要的第三方模块后,执行以下代码即可。

    import xlrd,xlsxwriter
    #设置要合并的所有文件
    allxls = ["F:/python/爬虫/测试Excel/测试1.xls","F:/python/爬虫/测试Excel/测试2.xls"]
    #设置合并到的文件
    endxls = "F:/python/爬虫/测试Excel/合并.xls"
    #打开表格并进行异常处理
    def open_xls(file):
        try:
            fh = xlrd.open_workbook(file)        
            return fh    
        except Exception as e:        
            print(str("打开出错,错误为:"+e))
    #获取所有Sheet
    def getsheet(fh):    
        return fh.sheets()
    #读取某个Sheet的行数
    def getnrows(fh,sheet):    
        table = fh.sheets()[sheet]##    
        content = table.nrows    
        return content
    #读取某个文件的内容并返回所有行的值
    def getfilect(fh,fl,shnum):    
        fh = open_xls(fl)    
        table = fh.sheet_by_name(shname[shnum])    
        num = getnrows(fh,shnum)    
        lenrvalue = len(rvalue)    
        for row in range(0,num):        
            rdata = table.row_values(row)        
            rvalue.append(rdata)    
            #print(rvalue[lenrvalue:])    
            filevalue.append(rvalue[lenrvalue:])    
            return filevalue
    #初始化列表#存储所有读取结果
    filevalue = []
    #存储一个标签的结果
    svalue = []
    #存储一行结果
    rvalue = []
    #存储sheet名
    shname = []
    #读取第一个待读文件,获取Sheet数
    fh = open_xls(allxls[0])
    sh = getsheet(fh)
    x = 0
    for sheet in sh:    
        shname.append(sheet.name)    
        svalue.append([])    
        x+=1
    #依次读取各sheet的内容#依次读取各文件当前sheet的内容
    for shnum in range(0,x):    
        for fl in allxls:        
            print("正在读取文件,"+str(fl)+"的第"+str(shnum)+"个标签的...")        
            filevalue = getfilect(fh,fl,shnum)    
        svalue[shnum].append(filevalue)    
        #print(svalue[0])    
        #print(svalue[1])
    #由于append具有叠加关系,分析可得所有信息均在svalue[0][0]中存储
    #svalue[0][0]元素数量为sheet标签数(sn)*文件数(fn)
    sn = x
    fn = len(allxls)
    endvalue=[]
    #设置一个函数专门获取svalue里面的数据,即获取各项标签的数据
    def getsvalue(k):      
        for z in range(k,k+fn):        
            endvalue.append(svalue[0][0][z])    
        return endvalue
    #打开最终写入的文件
    wbl = xlsxwriter.Workbook(endxls)
    #创建一个sheet工作对象
    ws = wbl.add_worksheet()
    polit = 0
    linenum = 0
    #依次遍历每个sheet中的数据
    for s in range(0,sn*fn,fn):    
        thisvalue = getsvalue(s)    
        tvalue = thisvalue[polit:]    
        #将一个标签的内容写入新文件中    
        for  a in range(0,len(tvalue)):        
            for b in range(0,len(tvalue[a])):            
                for c in range(0,len(tvalue[a][b])):                
                    #print(linenum)                
                    #print(c)                
                    data = tvalue[a][b][c]                
                    ws.write(linenum,c,data)            
                linenum+=1   
        #叠加关系,需要设置分割点    
        polit = len(thisvalue)
    wbl.close()

    最终看到运行结果为下图即为成功。
    运行结果

    展开全文
  • python excel表格合并源代码(有界面程序(pyqt5)
  • 是将系统中的8张余额表下载到指定的文件夹中,然后从文件夹中读取这8张余额表,将其合并为一张余额汇总表,在合并的时候要将组合名称重复的多行数据去重,并将其所对应的余额相加实现使用python中的pandas库来完成...

    需求

    在xx银行项目中遇到的一个需求,是将系统中的8张余额表下载到指定的文件夹中,然后从文件夹中读取这8张余额表,将其合并为一张余额汇总表,在合并的时候要将组合名称重复的多行数据去重,并将其所对应的余额相加

    实现

    使用python中的pandas库来完成

    import pandas as pd

    def custody_merge(src_dic, path):

    """

    src_dic:所有表汇总后的数据字典,有重复数据

    path:合并完成后文件要存放的路径

    """

    df = {"账户号": [], "组合名称": [], "余额": []}

    table = pd.DataFrame(src_dic, columns=list(src_dic.keys()))

    # 按组合名称分组

    group_by_name = table.groupby("组合名称")

    for tuple_table in group_by_name:

    list_table = list(tuple_table)

    pd1 = pd.DataFrame(list_table[1])

    # 余额相加

    balance = sum(pd1["余额"])

    # 将pd1转换为字典

    df1 = pd1.to_dict(orient="records")[0]

    df["账户号"].append(df1["账户号"])

    df["组合名称"].append(df1["组合名称"])

    df["余额"].append(balance)

    # 写入excel

    cus_balance_table = pd.DataFrame(df, columns=list(df.keys()))

    writer = pd.ExcelWriter(path)

    cus_balance_table.to_excel(writer, index=False)

    writer.save()

    展开全文
  • 主要为大家详细介绍了python合并同类型excel表格的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 合并单元格相信大家都会,比如下面这段简单的代码就可以实现: \napp='Word' word=win32.gencache.EnsureDispatch('%s.Application' % app) doc=word.Documents.Add() word.Visible=False #Title begin sel =word....
  • 如果需要实现合并单元格,或者按需调整表格样式,就比较麻烦了。 这时,可以试试本文的主角 —— html-table 包,借助它可生成各种样式的 HTML 表格。 接下来,以一个简单的例子演示 html-table 的常用用法: ...
  • 在工作中经常遇到需要将数据输出到excel,且需要对其中一些单元格进行合并,比如如下表表格,需要根据A列的值,合并B、C列的对应单元格 pandas中的to_excel方法只能对索引进行合并,而xlsxwriter中,虽然提供有...
  • python-Excel表格合并

    万次阅读 多人点赞 2019-02-19 15:35:42
    工具:python3.7.1 用到的模块:xlrd(负责读取数据) xlsxwriter(负责写入数据) glob(查找符合自己目的的文件) 一·模块安装(pip) 注意:这里我用的是pip模块来安装,部分python版本没有此功能,可自行百度 ...

    时间:2019.02.19
    工具:python3.7.1
    用到的模块:xlrd(负责读取数据)
    xlsxwriter(负责写入数据)
    glob(查找符合自己目的的文件)
    一·模块安装(pip)
    注意:这里我用的是pip模块来安装,部分python版本没有此功能,可自行百度
    (1)进入命令提示符窗口(按Win + R进入)
    (2)直接输入pip install+模块名
    (模块名:xlrd)
    (模块名:xlsxwriter)
    (模块名:glob)
    (3)直接输入pip list查看安装的模块
    这是查看的模块列表
    二.代码
    以下为代码及其注释:

    import xlrd
    import xlsxwriter
    import glob
    
    biao_tou = "NULL"
    wei_zhi = "NULL"
    
    #获取要合并的所有exce表格
    def get_exce():
        global wei_zhi
        wei_zhi = input("请输入Exce文件所在的目录:")
        all_exce = glob.glob(wei_zhi + "*.xlsx")
        print("该目录下有" + str(len(all_exce)) + "个exce文件:")
        if(len(all_exce) == 0):
            return 0
        else:
             for i in range(len(all_exce)):
                 print(all_exce[i])
             return all_exce					
            
    
    
    #打开Exce文件
    def open_exce(name):
        fh = xlrd.open_workbook(name)
        return fh
    
    #获取exce文件下的所有sheet
    def get_sheet(fh):
        sheets = fh.sheets()
        return sheets
    
    
    #获取sheet下有多少行数据
    def get_sheetrow_num(sheet):
        return sheet.nrows
        
    
    
    #获取sheet下的数据
    def get_sheet_data(sheet,row):
        for i in range(row):
            if (i == 0):
                global biao_tou
                biao_tou = sheet.row_values(i)
                continue
            values = sheet.row_values(i)
            all_data1.append(values)
            
        return all_data1
        
    
    if __name__=='__main__':
        all_exce = get_exce()
        #得到要合并的所有exce表格数据
        if(all_exce == 0):
            print("该目录下无.xlsx文件!请检查您输入的目录是否有误!")
            os.system('pause')
            exit()
    
        all_data1 = []
        #用于保存合并的所有行的数据
    
    
        #下面开始文件数据的获取
        for exce in all_exce:
            fh = open_exce(exce)
            #打开文件
            sheets = get_sheet(fh)
            #获取文件下的sheet数量
    
    
            for sheet in range(len(sheets)):
                row = get_sheetrow_num(sheets[sheet])
                #获取一个sheet下的所有的数据的行数
    
                all_data2 = get_sheet_data(sheets[sheet],row)
                #获取一个sheet下的所有行的数据
    
        all_data2.insert(0,biao_tou)
        #表头写入
    
        
    
    
        #下面开始文件数据的写入
        new_exce = wei_zhi + "test.xlsx"
        #新建的exce文件名字
    
        
        fh1 = xlsxwriter.Workbook(new_exce)
        #新建一个exce表
    
        new_sheet = fh1.add_worksheet()
        #新建一个sheet表
    
        for i in range(len(all_data2)):
            for j in range(len(all_data2[i])):
                c = all_data2[i][j]
                new_sheet.write(i,j,c)
                
        fh1.close()
        #关闭该exce表
        
        print("文件合并成功,请查看“" + wei_zhi + "”目录下的test.xlsx文件!")
                
        os.system('pause')
        os.system('pause')
    

    三.说明
    程序使用说明:
    (1) 运行”Exce表格合并.exe”文件
    (2) 输入要合并的所有.xlsx表格文件所在的盘目录**(注意不要输错目录,输错目录或者乱输入则直接强制退出)**
    (3) 输入完按回车后程序自动执行,生成test.xlsx文件
    注意:如果原来就存在test.xlsx文件,必须先删除,不然合并后的数据会保存在原来的test.xlsx文件,并且程序会一闪而过

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    最后感谢各位的观看,本人是今天刚申请的博客,第一次写,有什么不对的地方请各位指出。
    如有侵权请转告本人删除次文章(看其他大佬也这样写就跟着写上去了)

    展开全文
  • 主要介绍了Python pandas实现excel工作表合并功能以及相关实例代码,需要的朋友们参考学习下。
  • Python 合并 Excel 表格

    千次阅读 2020-04-03 08:00:00
    点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤绳锯木断,水滴石穿。之前曾尝试用 Python 写过整理 Excel ...

    点击上方“Python爬虫与数据挖掘”,进行关注

    回复“书籍”即可获赠Python从入门到进阶共10本电子书

    绳锯木断,水滴石穿。

    之前曾尝试用 Python 写过整理 Excel 表格的代码,记录在《Python 自动整理 Excel 表格》中。当时也是自己初试 pandas,代码中用到的也是结合需求搜索来的 merge 方法实现两个表格的“融合”,现在看来也不算复杂。起初没什么人看,也没留意;最近很意外地被几位朋友转载了去,竟也带着原文阅读破千了,吸引了不少新的关注。

    由此想到,可能 pandas 处理表格并没有想象中被熟知,如果不接触可能完全意识不到会有这类工具的存在。

    今天要分享的这个问题和之前的类似,也是表格合并:

    首先是需求一:有 表 A.xlsx 和 表 B.xlsx,想将其纵向合并成同一张表格:

    以及需求二:想在 表 C.xlsx 中提取第三列、在 表 D.xlsx 中提取前两列,整合成新的表格:


    如果不用编程,纯手工操作其实并不难,选中区域、复制再粘贴就搞定了。工作量小的情况下,手工操作一番还挺快乐的;但如果文件几十上百份、甚至成百上千的话就一言难尽了。所以,工作量大时,编程代码来实现上述操作的优势就凸显了:修改代码中几个参数,设置几个循环遍历,等几秒钟便可轻松搞定。

    下面看 Python 实现的思路和步骤,还是要用之前提到过的 pandas 库。

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

    pandas 百度百科

    关于 pandas 网上一堆这里先不赘述。此外,由于涉及 xlsx 格式的 Excel 表格读写,还需要 xlrd 和 openpyxl 模块的支持,可通过以下命令安装模块:

    pip install xlrd
    pip install openpyxl
    

    如果运行代码过程中,报错 No Module ... 可以尝试安装相应模块来解决。

    需求一编码

    模块准备就绪,首先是导入 pandas 模块,通过 read_excel  方法来读取表格内容。表 A 读取如下:

    表 B 读取如下:

    读取到的表格内容的数据格式是 Dataframe (pandas 中的一种数据格式),最左侧竖排 0 开始的数字是该数据格式的 index。

    我们可以通过 pandas 中的 concat 方法来合并不同的 Dataframe。注意 concat 方法中有个参数是 axis,默认为 0 表示按行即纵向合并,此处我们没有做设置使用的是默认值:

    合并成功,但仍有问题,即最左侧的 index 和 "序号" 一列中的数字并没有实现依据实际表格数据进行更新,仍是保持原样需要做调整。首先是通过 reset_index 来重置下 index:

    此外还要对"序号"这一列中的数字更新处理:

    OK,纵向合并完成,将合并后的数据通过 to_excel 方法保存到 xlsx 表格中:

    最终,文件夹内会生成 result1.xlsx 表格文件,即合并后的结果了。

    需求二编码

    相较上个需求,此处额外多了一个提取某列,即定位数据格式中的部分数据,同时不同的是这次我们要横向按列合并提取出的内容。大致有些思路,仍是一步步来,首先仍是通过 read_excel 读取两个表格:

    因为需求要定位到特定某列,故通过 iloc 方法实现通过索引定位并提取某行某列数据,首先是 iloc[:,2] 获取 表 C 中的第三列(此处 ":" 代表所有行;2 代表由0开始的列索引值,即第三列):

    以及 iloc[:,[0,1]] 获取 表 D 中的第一、二列(此处 ":" 代表所有行;[0,1] 代表由0开始的列索引值,即第一列和第二列):

    获取到了特定的数据内容,仍然通过 concat 来合并,这里由于我们需要横向按列合并,故需要额外设置 axis 参数为 1:

    最终仍是通过 to_excel 方法保存 xlsx 格式表格文件:

    至此,需求完成,任务搞定。

    后续编码

    接下来我们可能还有疑问,这样写出来的代码不还是只能将两份表格合并为一,怎么处理大量表格呢?

    还记得学 Python 或其它编程语言开头都要学的 for 循环、定义方法么?基于刚实现的代码,我们就可以将整个合并流程定义成一个独立的方法,针对我们需要处理的大量文件,可以通过 for 循环来遍历、调用定义的方法来逐一完成处理。

    由于我手头上没有太多文件,且提问题的朋友没做要求,所以后续代码没有展开。


    此外,对于公众号的文章,我最初的观点是写自觉有趣的东西给大家当个乐子看。随着大家的反馈与提问,现在我对 "有趣" 的理解也丰富了些:除了博人眼球,用编程思路去优化现实中的问题也是很有意思的。

    应懒癌朋友的要求,在这整理一下之前发过的几篇关于 Excel 表格处理以及 PDF 文件相关的文章,如有需要自取哈~

    Excel 表格处理相关:

    PDF 文件处理相关:

    这么一整理,也没几篇。。

    以上,感谢阅读~

    ------------------- End -------------------

    往期精彩文章推荐:

    欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

    想加入Python学习群请在后台回复【入群

    万水千山总是情,点个【在看】行不行

    /今日留言主题/

    随便说一两句吧~~

    展开全文
  • 主要介绍了Python使用xlrd实现读取合并单元格,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 本篇介绍,把个excel表分别写到一个表格对应的个sheet里面,每个表的名称就是sheet的名字 import os import pandas as pd dir = './table_dir' # 获取目录下所有的表 origin_file_list = os.listdir(dir) print...
  • 主要介绍了使用 Python 合并多个格式一致的 Excel 文件,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • Python个excel表格合并为一个表格

    万次阅读 多人点赞 2016-12-22 14:05:31
    生活中经常会碰到个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个。诸如此类的问题有很。除了人工将所有表格的内容一个一个复制到汇总表格里,但...
  • 小虾也是参考了一些大神的代码,然后自己动手实现了一下,然后发布出来,有需要的来学习呀! 小虾在这儿提供2种方法来实现,但小虾比较喜欢第一种,容易而且好理解一点。 第一种实现方法: # 导入需要使用的包 ...
  • 合并多个excel表格,支持界面操作,操作简单,可浏览文件夹及选择表头行数 使用python实现,界面实现采用wxpython,支持不同格式的表格,需安装anaconda3.5及对应头文件,应用程序较大无法上传,如果需要可以联系...
  • 在xx银行项目中遇到的一个需求,是将系统中的8张余额表下载到指定的文件夹中,然后从文件夹中读取这8张余额表,将其合并为一张余额汇总表,在合并的时候要将组合名称重复的多行数据去重,并将其所对应的余额相加 ...
  • 主要介绍了利用Python实现Excel的文件间的数据匹配,本文通过一个函数实现此功能,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • python实现多合并为一列的方法总结

    千次阅读 多人点赞 2019-12-23 17:19:40
    缺点:某一列如果为空,另一列不为空,则合并结果是为空,所以在合并之前需要对NA进行预处理,替换或者删除。 注意:如果某一列是非str类型的数据,那么我们需要用到map(str)将那一列数据类型做转换:df["newColumn...
  • 利用Python,将个excel文件合并为一个文件 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。 完整代码 # -*- coding: utf-8 -*- #将...
  • python_合并多表格为一个,注意这里说的表格是正常的表格,有些xls结尾的表格实际上是html格式 看这:https://blog.csdn.net/kisswife/article/details/76595876 import os import pandas as pd # 将文件读取...
  • Python实现将两个表格(txt格式)合并功能:将两个txt格式的表格进行合并,如下图所示:合并前是一个电话本和一个邮箱本,里面姓名有部分重复部分不同。 合并后下面这个样子 ## 代码在这里 ## ---- #!/usr/bin/env ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,597
精华内容 7,838
关键字:

python实现多表格合并

python 订阅