pandas 表格对比

需求:根据两张表格内容进行对比,找到相同的内容,并将相同的内容进行相加。同时将不同的内容添加到表格的最后。整合两张表格。

import Pandas as pd

def compare_result(df, path_b):
    df_a = df
    df_b = integrete_data(path_b)
    
    # find the same names 
    df_samea = df_a[df_a[para].isin(df_b[para])]
    df_sameb = df_b[df_b[para].isin(df_a[para])]
    df_samea.reset_index(drop=True, inplace=True)
    df_sameb.reset_index(drop=True, inplace=True)
    
    # get unique items in df_a
    df_uniquea = df_a.append(df_samea)
    df_uniquea.drop_duplicates(keep=False,inplace=True)
    df_uniquea.reset_index(drop=True, inplace=True)
    
    # get unique items in df_b
    df_uniqueb = df_b.append(df_sameb)
    df_uniqueb.drop_duplicates(keep=False,inplace=True)
    df_uniqueb.reset_index(drop=True, inplace=True)
    
    # compute samea and sameb
    df_samea = df_samea.sort_values(by=[para])
    df_sameb = df_sameb.sort_values(by=[para])
    df_samea[para] = df_samea[para] + df_sameb[para]
    df_samea.reset_index(drop=True, inplace=True)
    
    df = df_samea.append(df_uniquea)
    df = df.append(df_uniqueb)
    df.reset_index(drop=True, inplace=True)
    print(df)

    return df

代码运行后,可将表格内容进行区分,相同部分进行计算复合,不同部分添加到新表中。