本帖最后由 花木成畦手自栽 于 2022-4-29 14:31 编辑
工作中,需要汇总门店交上来的多个相同列、格式的EXCEL文档,当然此类程序很多,重点在于只合并某列为特定条件的数据。
例如:A、B、C、D、E五个相同结构EXCEL文件,只要”大小“列为”小“的行数据。
用PYTHON PANDAS写的小程序,也是借鉴于大佬们分享教程,水平有限,大佬勿喷。本着人人为我,我为人人的精神,分享给有需要的小伙伴使用。
[Python] 纯文本查看 复制代码
import os
import pandas as pd
def merge_data():
path = os.getcwd() + '\\'+'DATA' #获取EXCEL文件目录
file_list = os.listdir(path) #获取EXCEL文件列表
save_path = os.getcwd() + '\\' + 'DATA_合并'+ '\\' + '合并.xlsx' #设置合并后输出目录和文件名
print("----------开始合并----------")
df = pd.read_excel(path + '\\'+ file_list[0]) #读取第一个EXCEL文件
df_temp = df.loc[df['列标题'] == '值'] #根据某列是为“值”提取成新的DF
print("添加"+file_list[0],df_temp.shape[0],"行,合计:",df_temp.shape[0],"行") #屏幕显示新DF为多少行,合并后共多少行
for i in range(1,len(file_list)): #循环第2个~最后一个EXCEL文件
df1 = pd.read_excel(path + '\\' + file_list[i]) #读取EXCEL文件
df2 = df1.loc[df1['是否一致'] == '否'] #根据某列是为“值”提取成新的DF
df_temp = pd.concat([df_temp,df2]) #合并2个DF
print("添加"+file_list[i],df2.shape[0],"行,合计:",df_temp.shape[0],"行") #屏幕显示DF2为多少行,合并后共多少行
df_temp.to_excel(save_path) #按路径保存文件
print("----------合并完成----------")
if __name__=='__main__':
merge_data()
|