對excl檔案選擇某些列並根據行的內容進行排序
阿新 • • 發佈:2018-12-24
收到一個不包括檔案,需要根據檔案中每行的資訊進行調整,現將需要的列給摘出來,然後按照相同的行給排在一起
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') #儲存檔案