在工作中,我们会遇到这样一个问题,将指定文件目录下的excel文件进行合并,如果手工去操作,大大降低了效率,使用python处理数据无疑是最简单的操作方式。
整体思路
(1)构建一个空的excel文件,然后循环数据源目录下文件名称。
(2) 获取每个excel工作簿里面的sheet子表名称列表,然后一一读取
(3) 保存到新建的DataFrame中
具体代码:
import pandas as pd
import numpy as np
import os
os.chdir(r"E:\old\工作\工作记录\预测\类目销量预测\2020-05-01\数据源汇总\数据源") #定义工作目录
path =r"E:\old\工作\工作记录\预测\类目销量预测\2020-05-01\数据源汇总\数据源"
list_dir = [ i for i in os.listdir(path) ] # 获取指定目录下的所有文件列表
# 创建空的excel文件
fin_file = "../预测数据源汇总.xlsx"
writer = pd.ExcelWriter(fin_file)
for file_name in list_dir:
sheet_list = list(pd.read_excel(os.path.join(path,file_name),sheet_name=None)) # 文件sheet页
for s_name in sheet_list:
data = pd.read_excel(os.path.join(path,file_name),sheet_name =s_name)
data.to_excel(writer,sheet_name = s_name,index = False)
writer.save() # 保存文件
writer.close() # 关闭文件并退出
效果展示:(已实现将所有数据存放在一个工作簿上~)