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

使用Python通过xlrd和pandas库实现快速合并多个Excel文件中的数据,提高办公效率。详细步骤包括收集数据文件、建立汇总文件、读取Excel、转换为dataframe并汇总、保存为新的Excel文件。
摘要由CSDN通过智能技术生成

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

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

流程分析:

收集数据源文件夹中的数据文件名称(workbook_names)

建立新的数据汇总文件 – 用于收集并保存所有的数据

打开并读取Excel文件,收集每个数据文件中的表格名称(sheet_names)

按表格将数据转换为dataframe,并汇总在一起

将dataframe转为Excel文件

检查数据汇总的结果

原始数据的情况:

有2个数据集:Data_1和 Data_2,每个文件有3个表格

069ee889f2571e7ffc02ce80a462e4c3.png

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("数据汇总表已生产,请检查!")1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

程序运行结果:

3bcbc53dd2ca7e58d3934bd2c550f505.png

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

a015f1d731f2d0377f0b8df218b45523.png

问题解决了!

温馨提示:

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

import openpyxl

# 读取excel文件和提取文件中的工作表名称

wb = openpyxl.load_workbook(file_path)

sheet_names = wb.sheetnames1

2

3

4

5

文章来源: blog.csdn.net,作者:若芷兰,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_45914452/article/details/113408659

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值