Следующий код читает существующую электронную таблицу MS Excel, создает карту столбцов, а затем экспортирует результаты в другую электронную таблицу Excel. Лист и связанные столбцы на самом деле намного больше, но для простоты контекста я спарил количество столбцов на карте.
Вы заметите, что в процессе я создаю 2 пустых столбца и отбрасываю любыеповторяющиеся строки. Я борюсь с правильным оператором Try: Except:, который подтвердит, что я не перезаписываю существующие столбцы созданными столбцами NULL, а также проверю, не являются ли дублирующиеся строки. Я знаю, что нет, но мне нужен отчет журнала ошибок для целей аудита. Ниже приведен простой макет кода, насколько я понял. Я все еще плохо знаком с обработкой исключений и буду признателен за вашу помощь. Заранее спасибо.
from datetime import datetime
import logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s",
handlers=[logging.StreamHandler()])
os.chdir(r'M:\Loans')
col_map = {'Loan #' : 'LoanNo',
'Last Name' : 'LastName',
'Purchase Price' : 'PurchasePrice',
'Loan Amt' : 'LoanAmt',
'Property Address' : 'PropertyAddress',
'City' : 'City',
'State' : 'State',
'Zip Code' : 'ZipCode',
'Interest Rate' : 'InterestRate',
'UPBCurrent' : 'UPBCurrent',
'NextDueDateAtPurchase' : 'NextDueDateAtPurchase',
'CurrentAdvanceRate': 'CurrentAdvanceRate',
'Comments' : 'Comments',
'CurrentAdvanceAmount': 'CurrentAdvanceAmount',
'SecondRoundCurrentAdvanceRate' : 'SecRoundCurrentAdvRate',
'SecondRoundCurrentAvanceAmount' : 'SecRoundCurrentAdvAmount',
}
for f in os.listdir():
logging.info('Reading in file {}'.format(f))
df=pd.read_excel('M:\Loans\Loan Blotter XYZ OLD.xlsx')
df['UPBCurrent'] = None
df['NextDueDateAtPurchase'] = None
df = df[col_map.keys()]
df.drop_duplicates(inplace=True)
df.columns = [col_map[col] for col in df.columns]
df['Channel'] = 'Whole Loans'
df['DateCreated'] = datetime.today().date()
df.to_excel(r'M:\Err Log.xlsx', index=False)