python合并多个excel表格文件为一个或者放到不同的sheet中

场景:许多excel文件格式和内容的标题都一样,需要将这些表格合并到一起,有5个表,每个表10行的话,合并后就是50行的数据

方案1:文件放到一个目录中遍历所有文件然后进行数据合并-合并到不同sheet

目录 d:/表格存放/ 下存放了5个excel文件

要求输出到d盘根目录下面 ‘合并后表格.xlsx’

import os
import pandas as pd

#定义一个函数读取文件路径
def file_name_paths(path='D:/UP', find=None, case_sensitive=False):
    '''目录下的所有文件,包括子目录,返回值为多个文件的完整路径列表
        path: 路径
       find:None:关闭过滤(搜索功能)
             '.csv' 过滤.csv的文件
       case_sensitive :区分大小写 默认为不区分
    '''
    path_collection=[]
    for dirpath,dirnames,filenames in os.walk(path):
            for file in filenames:
                    fullpath=os.path.join(dirpath,file)
                    if '~$' not in file.upper():
                        if case_sensitive:
                            if find:
                                if find in file:
                                    path_collection.append(fullpath)
                            else:
                                path_collection.append(fullpath)
                        else:
                            if find:
                                if find.upper() in file.upper():
                                    path_collection.append(fullpath)
                            else:
                                path_collection.append(fullpath)
                    else:
                        pass
    return path_collection

#读取要合并的目录下的文件,如果里面有其他非.xlsx文件不要合并:file_name_paths('d:/表格存放',find='.xlsx')

file_name_list = file_name_paths('d:/表格存放')

#定一个一个空的df,用来存放所有的表格
summary_table = pd.DataFrame()

for file_name in file_name_list: 
    data_temp = pd.read_excel(file_name) #循环读取每个表格
    summary_table = summary_table.append(data_temp) #添加到上面的空的df中

summary_table.to_excel('d:/合并后表格.xlsx',index=False) #导出

方案2:文件放到一个目录中遍历所有文件然后进行数据聚合,将不同文件放到excel中的不同sheet里面

file_name_list = file_name_paths('d:/表格存放')

writer = pd.ExcelWriter('d:/合并后表格2.xlsx')#创建一个表
for file_name in file_name_list: 
    data_temp = pd.read_excel(file_name) #循环读取每个表格
    data_temp.to_excel(writer,os.path.splitext(os.path.basename(file_name))[0],index=False) #将每个表分别放到以名称命名的sheet中
writer.save() #保存d:/合并后表格2.xlsx

 

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值