龙空技术网

WPS收费功能免费用!Pandas实现多层级多Sheet的Excel文件合并!

全栈程序员庆庆 154

前言:

现在小伙伴们对“pandas合并多个sheet”大致比较注意,咱们都想要分析一些“pandas合并多个sheet”的相关文章。那么小编在网络上搜集了一些有关“pandas合并多个sheet””的相关内容,希望我们能喜欢,兄弟们一起来了解一下吧!

文章的开始我们先研究一下WPS的表格合并,这是一个收费功能。

可以看到,他按照相同的列名,将表格按行合并。

Pandas作为一个强大的数据分析工具,此功能轻而易举。那么我们就来实现一个将某个文件夹下所有Excel文件合并的程序,包括子文件夹、 包括单文件的多Sheet。

首先,我们先看下此次模拟数据,我们C盘下有个文件夹叫demo,其下有两个文件和一个文件夹。

其中,测试数据1文件中有两个Sheet有示例数据,其他所有文件均只有一个Sheet有数据。

demo1下也有两个文件,他们只有Sheet1有数据且和上述图中示例数据相同。

这样合并结果应是示例数据重复5次(4个文件的Sheet1数据+测试数据1的Sheet2数据)。

1. 安装依赖

# 必选依赖pip install pandas# 操作Excel时,必选依赖pip install "pandas[excel]"
2. 读取文件夹下所有Excel文件的路径
import osroot_dir = r"C:\demo"def get_file_paths(root_dir):    file_paths = []    for root, dirs, files in os.walk(root_dir):        for file in files:            if ("xls" in file) or ("xlsx" in file):                file_path = os.path.join(root, file)                file_paths.append(file_path)    return file_paths# ['C:\\demo\\测试数据1.xlsx',# 'C:\\demo\\测试数据2.xlsx',# 'C:\\demo\\demo1\\测试数据3.xlsx',# 'C:\\demo\\demo1\\测试数据4.xlsx']print(get_file_paths(root_dir))
3. 遍历所有文件,遍历Sheet,读出内容并合并
df = pd.DataFrame()for file_path in get_file_paths(root_dir):    excel_file = pd.ExcelFile(file_path)    for sheet_name in excel_file.sheet_names:        df_temp = pd.read_excel(file_path, sheet_name=sheet_name)        df = pd.concat([df, df_temp])df.to_excel(r"C:\demo\合并结果.xlsx")

打开合并结果文件可以看到,非常简洁的几行代码,就完成了多层次,多Sheet的表格合并功能!

4. 总结

Pandas库是Python最强的数据分析库之一,使用它可以很方便汇总和统计数据,提高工作效率。在日常工作中,您有什么繁琐的Excel操作需求呢?欢迎交流!

#Python##Excel##Pandas数据分析#

标签: #pandas合并多个sheet