对excl文件选择某些列并根据行的内容进行排序

收到一个不包括文件,需要根据文件中每行的信息进行调整,现将需要的列给摘出来,然后按照相同的行给排在一起

import pandas as pd
import os
Folder_file =r'E:\全国规则调整\需要调整的表格' #文件夹的名字
path = r'C:\Users\lenovo\Desktop\test.xlsx'
excel_files =Folder_file +'\\'+ os.listdir(Folder_file)[0]
print(excel_files)
if excel_files.split('\\')[-1][:2] == '~$':  # 可能在打开文件夹的时候产生一些临时文件,避开临时文件
    excel_files = Folder_file + '\\' + os.listdir(Folder_file)[1]
ad = pd.read_excel(excel_files).fillna('不修改')
ad['投件规则(调整后名称)'] = ad.apply(lambda x:'不修改' if x['投件规则(调整后名称)'] == x['投件规则(调整前名称)'] else x['投件规则(调整后名称)'],axis = 1)  #作用于每一行
ad['取件规则(调整后名称)'] = ad.apply(lambda x:'不修改' if x['取件规则(调整后名称)'] == x['取件规则(调整前名称)'] else x['取件规则(调整后名称)'],axis = 1)  #作用于每一行
ad['预约规则(调整后名称)'] = ad.apply(lambda x:'不修改' if x['预约规则(调整后名称)'] == x['预约规则(调整前名称)'] else x['预约规则(调整后名称)'],axis = 1)  #作用于每一行
ad['短信模板(调整后名称)'] = ad.apply(lambda x:'不修改' if x['短信模板(调整后名称)'] == x['短信模板(调整前名称)'] else x['短信模板(调整后名称)'],axis = 1)  #作用于每一行
ad['滞留规则(调整后时长)'] = ad.apply(lambda x:'不修改' if x['滞留规则(调整后时长)'] == x['滞留规则(调整前时长)'] else x['滞留规则(调整后时长)'],axis = 1)  #作用于每一行

ad = ad[['网点ID','网点名称','投件规则(调整后名称)','取件规则(调整后名称)','预约规则(调整后名称)','短信模板(调整后名称)','滞留规则(调整后时长)','调整原因描述']].sort_values(by=['投件规则(调整后名称)','取件规则(调整后名称)','预约规则(调整后名称)','短信模板(调整后名称)','滞留规则(调整后时长)'])
if os.path.exists(path): #判断文件是否存在
    os.remove(path)      #如果存在文件则删除
ad.to_excel(r'C:\Users\lenovo\Desktop\test.xlsx') #保存文件


 

展开阅读全文

没有更多推荐了,返回首页