记录一下,在使用
pandas
处理excel表格
表格时候,关于分割(切分)表格这一块儿的操作。
这个系列会有三篇左右文章,这是第二篇,excel表格
合并
我们常说的 excel文件
,
xls
或 xlsx
为后缀的文件。(xls
和xlsx
分别为新旧版本的excel
生成的文件格式不论如何,这些知识知道了总不会有坏处。
关于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
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, )
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~🐱🏍🐱🏍