首页 > 技术文章 > 用python实现多个表格合并按字段去重

rong-z 2019-06-21 10:41 原文

需求

在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()

  

推荐阅读