引言
在工作中,为了方便分析数据,各位小可爱想必会遇到批量处理Excel文件的情况,今天,小编带各位小可爱来详细了解一下如何根据自己定义的条件批量合并Excel文件。首先需要导入os、xlrd、xlsxwriter、pandas和xlwt库。
代码实现
话不多数,下面让我们一起来看完整代码:
import os
import xlrd
import xlsxwriter
import pandas as pd
import xlwt
#获取Excel文件夹下的文件名称
path='需要批量处理的Excel文件路径'
out_excels_path='输出路径'#合并后Excel文件路径
excel_features=os.listdir(path)#获取文件夹下的Excel文件名称
#print(len(excel_features),excel_features)
#定义合并后文件的时间标志
year_month_names=[202301,202302,202303,202304,202305,202306,202307,202308,202309]
#定义Excel合并条件
for year_month_name in year_month_names:
#print('list',year_month_name)
str_year_month=str(year_month_name)
data_list=[]
out_excel_path = str(out_excels_path + '/' + 'NH3_' + str_year_month + '.xlsx') # 合并后文件输出路径和文件名
print(out_excel_path)
for excel_feature in excel_features:
year_month = excel_feature[4:10]#取Excel文件4-10位字符内容
year_month_int=int(year_month)
#判断字符内容与时间标志是否一致
if year_month_int==year_month_name:
#print('equal')
in_excel_path=str(path+'/'+excel_feature)#待合并Excel文件路径
data_list.append(pd.read_excel(in_excel_path))#读取Excel文件,返回一个DataFrame对象,并将其写入列表
data_all=pd.concat(data_list)#concat合并pandas数据
print('合并至{},数据行列数为{}'.format(excel_feature,data_all.shape))#查看DataFrame的行列数
data_all.to_excel(out_excel_path,index=False)#将DataFrame保存为Excel文件
print(str_year_month,'合并完毕!')