Мне нужно обновить существующий скрипт конкатенации Python Pandas, который в настоящее время объединяет более 30 электронных таблиц MS Excel, используя карту столбцов (словарь). В настоящее время сценарий объединяется, используя только одну вкладку, которая названа в операторе pd.read_excel. Мне нужно держать карту столбцов в такте и вносить один дополнительный столбец из другой вкладки в общую конкатенацию, поэтому я думаю, что мне нужно будет проанализировать листы в кадре данных. Я понимаю, что это, вероятно, просто, но все еще тянет меня за волосы. Имя существующей вкладки Excel - «Сведения об уровне ссуды», и мне нужно перенести другой столбец (Дата выплаты) из другой вкладки (S214 Ежедневные выплаты). Текущий код размещен ниже. Заранее благодарим за любую помощь, которую вы можете предложить.
import os, pandas as pd
os.chdir(r'M:\Operations\ABC Database\Accounting FMV Recon\Monthly Report Templates Input\Servicer Reports\201908\XYZ')
df_list = []
col_map = {'XYZ Msp Bank': 'XYZMspBank',
'XYZ Loan No' : 'XYZLoanNo',
'Prior Loan' : 'AOLoanNo',
'Borrowers Name' : 'BorrName',
'MBA Delinquency Status' : 'MBADelqStatus',
'Note Prin' : 'NotePrincipal',
'Interest Rate' : 'IntRate',
'Current P&I' : 'CurrentPI',
'Beginning UPB' : 'BegUPB',
'Ending UPB' : 'EndUPB',
'Ending Deferred Principal' : 'EndDefPrincipal',
'Boarded Principal' : 'BoardedPrincipal',
'UPB Transfer In' : 'UPBTransferIn',
'UPB Transfer Out' : 'UPBTransferOut',
'Non-Monetary Adjustments' : 'NonMonetaryAdj',
'Next Payment' : 'NextPayment',
'S215 Principal Collected' : 'S215PrinCollected',
'S215 Interest Collected' : 'S215IntCollected',
'S213 Curtailment Collected' : 'S213CurtCollected',
'S214 PIF Principal Collected' : 'S214PIFPrinCollected',
'S214 PIF Servicing Fee Collected' : 'S214PIFServicingFeeCollected',
'S214 PIF Interest Collected' : 'S214PIFIntCollected',
'S214 PIF Prepmt Penalty Collected' : 'S214PIFPrepmtPenaltyCollected',
'S214 Daily Payoffs (Non Securitized)' : 'S214DailyPayoffsNonSec',
'S214 Daily Payoffs (Securitized)' : 'S214DailyPayoffsSec',
'Total Remittance' : 'TotalRemittance'
}
for f in os.listdir():
temp = pd.read_excel(f, sheet_name='Loan Level Detail')
temp = temp[temp['ZYZ Loan No'].notnull()]
temp = temp[col_map.keys()]
temp.rename(columns=col_map, inplace=True)
temp['SourceFile'] = f
df_list.append(temp)
df = pd.concat(df_list, ignore_index=True)
df.drop_duplicates(inplace=True)
df['ReportDate'] = 201908
df.to_excel(r'M:\Operations\ABC Database\Accounting FMV Recon\Monthly Report Templates Output\Servicer Reports\XYZ Concatenated 201908.xlsx', index=False)