当前位置: 首页 > article >正文

python批量合并excel文件

当工作中发现有多个excel表需要进行相同的操作或者需要汇总在一起,一个一个处理太费时间,以下的python代码能够帮你解决这个问题~

import pandas as pd
import os

# 设置Excel文件所在的文件夹路径和合并文件的输出路径  
folder_path = 'D:\\Desktop\\data'  # 替换为你的Excel文件所在文件夹路径  
output_file = 'D:\\Desktop\\data\\merged_excel_file.xlsx'    # 合并后的Excel文件所属路径  

# 创建一个空的list,用于存储合并后的数据 
data_list = []
n=0

#遍历文件夹里的所有文件,判断excel文件,并合并数据
for file in os.walk(folder_path):    
    for table in file[2]:
        #判断是否为Excel文件,是则继续后面的操作
        if table.endswith(".xlsx") or table.endswith(".xls"):
            #完善Excel文件的路径
            path = file[0] + '/' + table
            #读取Excel文件,返回一个DataFrame对象
            df = pd.read_excel(path)
            
            #通过文件名提取有效信息
            level0=table.split("-")[2]
            # 插入列
            col_name = df.columns.tolist()
            col_name.insert(0, '品类')
            df = df.reindex(columns = col_name)
            #通过新增的列,承接提取的有效信息
            df.loc[:,'品类'] = level0
            #将DataFrame追加到列表data_list中
            
            data_list.append(df)
            #记录已处理的表格数量
            n = n+1 
            print('第' + str(n) + '个表格已处理')

# 将合并后的List转化为DataFrame
data_all =pd.concat(data_list)

#还可以对DataFrame进行其他操作,比如改变数据类型等
# data_all['item_ID'] = data_all['item_ID'].astype ('str')

# 将 DataFrame 保存为新的Excel 文件
data_all.to_excel(output_file,index=False)


http://www.kler.cn/a/387457.html

相关文章:

  • 第16章 SELECT 底层执行原理
  • 如何在有限内存下对外部大文件进行排序
  • linux详解,基本网络枚举
  • 人工智能(AI)和机器学习(ML)技术学习流程
  • 全面解析 Python typing模块与静态类型注解:从基础到高级
  • 离线部署maven项目笔记(2)
  • 经典的ORACLE 11/12/19闪回操作
  • 前端vue3若依框架pnpm run dev启动报错
  • AI时代来临,什么是真正的大模型?【大模型扫盲系列】
  • 行转列实现方式总结
  • vue,uniapp,微信小程序解决字符串中出现数字则修改数字样式,以及获取字符串中的数字
  • SpringBoot API版本控制策略详解
  • 【前端】Svelte:动画效果
  • 华为机试HJ33 整数与IP地址间的转换
  • 【复旦微FM33 MCU 开发指南】ADC
  • 微服务中常用分布式锁原理及执行流程
  • delphi 编译多语言工程 error RC2104 : undefined keyword or key name:
  • js id字符串转数组
  • 学习threejs,使用JSON格式保存和加载整个场景
  • Chromium127编译指南 Mac篇(二)- 安装Xcode
  • 【工具】VeraCrypt|Windows 怎么给磁盘文件夹加密码?开源磁盘加密工具 VeraCrypt 教程
  • 青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
  • 暮雨直播 1.3.2 | 内置直播源,频道丰富,永久免费
  • SpringBoot Java教学辅助平台:构建高效学习环境
  • LeetCode每日一题3235---判断矩形的两个角落是否可达
  • hadoop+spark中8088,18080,19888,4040端口页面的区别