1. 程式人生 > >對excl檔案選擇某些列並根據行的內容進行排序

對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') #儲存檔案