Python 合并和求和数据帧
我有以下数据帧: 数据帧1: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,
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