Excel:快速合并多张表格或多个文件(工作簿)的数据(附Python代码)

Excel:快速合并多张表格或多个文件(工作簿)的数据(附Python代码)

现实工作中经常遇到将零散的原始数据合并统计的工作要求,如月度统计或年度统计等。原始数据的收集大多是按时间(如日期或小时)进行获取记录的,即每1天或1个时间段就会产生1张Excel的数据表格,当要进行月度或年度数据分析时,传统方法就需要花费不少的时间进行原始数据的合并,俗称“copy_paste"操作。下面的方法是应用Python代码实现快速合并多张表格的数据的任务 – "一键成型“,大大提高办公室的工作效率:

流程分析:
  1. 收集数据源文件夹中的数据文件名称(workbook_names)
  2. 建立新的数据汇总文件 – 用于收集并保存所有的数据
  3. 打开并读取Excel文件,收集每个数据文件中的表格名称(sheet_names)
  4. 按表格将数据转换为dataframe,并汇总在一起
  5. 将dataframe转为Excel文件
  6. 检查数据汇总的结果
原始数据的情况:

有2个数据集:Data_1和 Data_2,每个文件有3个表格
在这里插入图片描述

Python代码:
import xlrd
import pandas as pd
import os

# 1. 收集数据源文件夹中的数据文件名称(workbook_names)
file_dir = "d:/原始数据集"
file_list = os.listdir(file_dir)
print("合并的文件包括:", file_list)

# 2. 建立新的数据汇总文件 -- 用于收集并保存所有的数据
new_file = "d:/汇总数据.xlsx"
new_list = []
sheet_num = 0

# 3.打开并读取Excel文件,收集每个数据文件中的表格名称(sheet_names) 
for file in file_list:
    file_path = os.path.join(file_dir, file)   
    wb = xlrd.open_workbook(file_path)
    sheet_names = wb.sheet_names()
    sheet_num += len(sheet_names)   #计算合并的表格的总数

# 4.按表格将数据转换为dataframe,并汇总在一起
    for sn in sheet_names:
        dataframe = pd.read_excel(file_path, sheet_name=sn, header=0)
        new_list.append(dataframe)

# 5. 将datafram转为excel
df = pd.concat(new_list)
df.to_excel(new_file, sheet_name="Summary")

# 6.检查数据汇总的结果
print("合并的表格数量:", sheet_num)
print("数据汇总表已生产,请检查!")
程序运行结果:

在这里插入图片描述

数据汇总表格(新生产的):

在这里插入图片描述
问题解决了!

温馨提示:

本博客测试的是xls文件,如果是对于xlsx文件,建议使用openpyxl来操作。关键替换代码如下:

import openpyxl

# 读取excel文件和提取文件中的工作表名称
wb = openpyxl.load_workbook(file_path)
sheet_names = wb.sheetnames
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值