熊猫合并和总和数据框架

时间:2018-06-18 20:45:21

标签: python pandas join merge

我有以下数据框:

数据框1:

ID1,ID2,VAL1,VAL2
CAR,RED,5,5
TRUCK,RED,6,6
CAR,BLUE,1,1

数据框2:

ID1,ID2,VAL1,VAL2
BIKE,RED,5,5
TRUCK,BLACK,6,6
CAR,RED,1,1

我想在key = {ID1,ID2}上加入这两个数据框。但我也想把值{VAL1,VAL2}加起来。例如,输出将是:

ID1,ID2,VAL1,VAL2
CAR,RED,6,6
TRUCK,RED,6,6
CAR,BLUE,1,1

我尝试过pandas.merge的各种组合并没有运气。 有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

要在pandas中使用pd.merge加入数据集。在给定的情况下,连接应用于具有相似名称的列,因此它足以将这些列名称的列表作为on参数传递:

merged = pd.merge(df_1, df_2, on=["ID1", "ID2"], how="left").fillna(0)

接下来,使用例如df.assign

计算必要的列
merged = merged.assign(
    VAL1 = lambda x: x.VAL1_x + x.VAL1_y,
    VAL2 = lambda x: x.VAL2_x + x.VAL2_y)

<强>结果

columns = df_1.columns 
merged[columns]

>>> ID1     ID2     VAL1    VAL2
0   CAR     RED     6.0     6.0
1   TRUCK   RED     6.0     6.0
2   CAR     BLUE    1.0     1.0