python——合并同一个文件夹下所有excel文件

15 篇文章 1 订阅
4 篇文章 2 订阅

有以下,文件夹中的文件,共29个。

 各个excel有多个sheet文件,不同excel文件当中同一个sheet文件的数据结构是相同的,如下:

现在需要将多个excel中的相同命名的sheet合并到同一个sheet当中,组合成一个excel文件。具体代码如下:

import os
import os.path
import pandas as pd
import collections

#使用os模块walk函数,搜索出某目录下的全部excel文件
def getFileName(filepath):
    file_list = []
    for root,dirs,files in os.walk(filepath):
        for filespath in files:
            print(os.path.join(root,filespath))
            file_list.append(os.path.join(root,filespath))
    return file_list

#合并excel
def MergeExcel(filepath,outfile):
    file_list=getFileName(filepath)
    result=collections.defaultdict(pd.DataFrame)
    #合并多个excel文件
    for each in file_list:
        #读取xlsx格式文件
        data=pd.read_excel(each,sheet_name=None,header=1)  #header:控制标题行在第几行,
                                                           #sheet_name=None使得返回一个类似字典的东西,key为sheetname,values为sheet中的数据
        for key in data:
            data_=data[key]
            result[key]=result[key].append(data_[data_['合同号'].notnull()]) #合同号是必须填项,去除合同号为空的记录
    #将合并的数据填写到新的excel文件当中
    writer = pd.ExcelWriter(filepath+outfile, 
                            #engine='xlsxwriter', options={'strings_to_urls': False}
                           )
    for i,j in result.items():
         j.to_excel(writer,i, index=False)
    writer.close()

#调取方法,合并数据
filepath='D:/dataset/chen/'
outfile2 = 'result.xlsx'
MergeExcel(filepath, outfile2)

合并之后的excel文件格式如下,命名相同的sheet合并在了一起。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xia ge tou lia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值