1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python 合并工作簿_Excel:快速合并多张表格或多个文件(工作簿)的数据(附Python代码)...

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

时间:2021-10-14 06:34:58

相关推荐

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

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

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

流程分析:

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

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

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

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

将dataframe转为Excel文件

检查数据汇总的结果

原始数据的情况:

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

程序运行结果:

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

问题解决了!

温馨提示:

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

import openpyxl

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

wb = openpyxl.load_workbook(file_path)

sheet_names = wb.sheetnames1

2

3

4

5

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

原文链接:/weixin_45914452/article/details/113408659

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。