Python 合并和求和数据帧

Python 合并和求和数据帧,python,pandas,join,merge,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:

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
中加入数据帧,请使用。在给定的情况下,join应用于具有相似名称的列,因此,将这些列名的列表作为
on
参数传递就足够了:

merged = pd.merge(df_1, df_2, on=["ID1", "ID2"], how="left").fillna(0)
接下来,使用以下公式计算必要的列,例如:

结果

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

我会使用
left
join,因为这是OP真正需要的。除此之外,这个答案似乎恰到好处。太棒了,太完美了。
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