利用Python处理excel表格,panda合并表格、合并多个excel、多个sheet
创始人
2024-03-16 00:50:03
0

前言

记录一下,在使用pandas处理excel表格表格时候,关于分割(切分)表格这一块儿的操作。
这个系列会有三篇左右文章,这是第二篇,excel表格合并

我们常说的 excel文件

  • 在广义上,是指以 xlsxlsx 为后缀的文件。(xlsxlsx分别为新旧版本的excel生成的文件格式
  • 在狭义上,是指Microsoft公司编写的一款电子表格软件。

不论如何,这些知识知道了总不会有坏处。


关于excel的合并这一块儿,像wps软件,做的是非常优秀的,一键进行合并。

在这里插入图片描述

既然它已经这么优秀了,那为啥还写这篇文章呢?对啊!为什么呢?为什么你还会查阅这篇文章呢!!!

解决问题🐓🐓

在我看来,使用Python处理excel表格,至少在合并这一块儿,如果被合并的内容格式是不一致的,那是非常没必要的。因为格式花样层出不穷,不同格式还得不同处理,属于吃力不讨好的活儿。所以本文的合并,只针对于格式一致的excel文件。(换句话说就是我只跳了最简单的来介绍。

表格合并这一块儿,能做的有点多(组合起来是很多的),在这里只介绍

  • 单个excel文件,多个sheet,合并多个sheet到一个sheet中并保存
  • 多个excel文件,单个sheet,合并多个excek到一个excel文件中并保存

安装模块

pip install openpyxl
pip install pandas

知识点📖📖

pandas

类型链接
文档官方文档:https://pandas.pydata.org
视频视频总结:https://www.bilibili.com/video/BV1PZ4y1U7Y7
项目地址项目地址:https://github.com/Frica01/BlogCode/tree/main/excel-operation

代码

这里给出伪代码,可以运行。如需配套练习的excel文件,可从这里获取 excel-operation

多个sheet 合成一个sheet

def merge_multi_sheet_to_single_sheet(file_path):"""合并多个sheet到一个sheet中Args:file_path(str): 文件路径Returns:None"""output_file_path = f'./output/{os.path.basename(file_path)}'df = read_excel(file_path, sheet_name=None)# 新建一个空的DataFramemerge_df = DataFrame()# 创建新文件with ExcelWriter(path=output_file_path) as writer:for sheet_name in list(df.keys()):# 将sheet添加到merge_df去merge_df = concat([merge_df, df[sheet_name]])merge_df.to_excel(excel_writer=writer, sheet_name='merge', index=False, )

多个excel 合成一个excel

def merge_multi_excel_to_single_excel(files_path):"""合并多个excel到一个excel文件夹中Args:files_path(list|tuple|str): 文件夹路径Returns: None"""# 处理文件导出路径if not os.path.exists('./output'):os.makedirs(name='./output')# 如果传入的路径是字符串,则取当前文件夹的所有excel文件,+ 补全路径if isinstance(files_path, str):files_path = [os.path.join(os.path.abspath(files_path), _) for _ in os.listdir(files_path)]else:files_path = [os.path.abspath(_) for _ in files_path]new_df = DataFrame()for file_path in files_path:df = read_excel(file_path, sheet_name=0)# 合并文件new_df = concat([new_df, df])# 删除子文件# os.remove(file)'./excel-file/multi_sheet.xlsx, '# 保存文件new_df.to_excel(excel_writer=f'./output/merge.xlsx', sheet_name='merge', index=False)

后话

本次分享到此结束,如有疑问请自行解决。
see you~🐱‍🏍🐱‍🏍

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...