需求
在xx銀行項目中遇到的一個需求,是將系統中的8張余額表下載到指定的文件夾中,然后從文件夾中讀取這8張余額表,將其合並為一張余額匯總表,在合並的時候要將組合名稱重復的多行數據去重,並將其所對應的余額相加
實現
使用python中的pandas庫來完成
import pandas as pd
def custody_merge(src_dic, path):
'''
src_dic:所有表匯總后的數據字典,有重復數據
path:合並完成后文件要存放的路徑
'''
df = {'賬戶號': [], '組合名稱': [], '余額': []}
table = pd.DataFrame(src_dic, columns=list(src_dic.keys()))
# 按組合名稱分組
group_by_name = table.groupby('組合名稱')
for tuple_table in group_by_name:
list_table = list(tuple_table)
pd1 = pd.DataFrame(list_table[1])
# 余額相加
balance = sum(pd1['余額'])
# 將pd1轉換為字典
df1 = pd1.to_dict(orient='records')[0]
df['賬戶號'].append(df1['賬戶號'])
df['組合名稱'].append(df1['組合名稱'])
df['余額'].append(balance)
# 寫入excel
cus_balance_table = pd.DataFrame(df, columns=list(df.keys()))
writer = pd.ExcelWriter(path)
cus_balance_table.to_excel(writer, index=False)
writer.save()
