当工作中发现有多个excel表需要进行相同的操作或者需要汇总在一起,一个一个处理太费时间,以下的python代码能够帮你解决这个问题~
import pandas as pd
import os
# 设置Excel文件所在的文件夹路径和合并文件的输出路径
folder_path = 'D:\\Desktop\\data' # 替换为你的Excel文件所在文件夹路径
output_file = 'D:\\Desktop\\data\\merged_excel_file.xlsx' # 合并后的Excel文件所属路径
# 创建一个空的list,用于存储合并后的数据
data_list = []
n=0
#遍历文件夹里的所有文件,判断excel文件,并合并数据
for file in os.walk(folder_path):
for table in file[2]:
#判断是否为Excel文件,是则继续后面的操作
if table.endswith(".xlsx") or table.endswith(".xls"):
#完善Excel文件的路径
path = file[0] + '/' + table
#读取Excel文件,返回一个DataFrame对象
df = pd.read_excel(path)
#通过文件名提取有效信息
level0=table.split("-")[2]
# 插入列
col_name = df.columns.tolist()
col_name.insert(0, '品类')
df = df.reindex(columns = col_name)
#通过新增的列,承接提取的有效信息
df.loc[:,'品类'] = level0
#将DataFrame追加到列表data_list中
data_list.append(df)
#记录已处理的表格数量
n = n+1
print('第' + str(n) + '个表格已处理')
# 将合并后的List转化为DataFrame
data_all =pd.concat(data_list)
#还可以对DataFrame进行其他操作,比如改变数据类型等
# data_all['item_ID'] = data_all['item_ID'].astype ('str')
# 将 DataFrame 保存为新的Excel 文件
data_all.to_excel(output_file,index=False)