是否有一种方法可以通过公共列(最后一列除外)来连接两个DataFrame,并将最后一列乘以两个原始表中的值?
示例:
表X
A B Value
0 1 1 1.0
1 1 0 0.5
2 0 1 0.5
3 0 0 0.0
表Y
B C Value
0 1 1 1.0
1 1 0 0.5
2 0 1 0.5
3 0 0 0.0
预期输出:
A B C Value
0 1 1 1 1
1 1 1 0 0.5
2 1 0 1 0.25
3 1 0 0 0
4 0 1 1 0.5
5 0 1 0 0.25
6 0 0 1 0
7 0 0 0 0
说明:
例如(A = 1,B = 1,C = 0)=> 0.5,来自
值1 [X的((A = 1,B = 1))乘以值0.5 [Y的(B = 1,C = 0)]
答案 0 :(得分:3)
Quota 'GPUS_ALL_REGIONS' exceeded. Limit: 0.0 globally
,计算新列,然后删除不再需要的列。
merge
# All common columns except last
cols = df1.columns[:-1].intersection(df2.columns[:-1]).tolist()
df = df1.merge(df2, on=cols)
df = df.assign(Value = df.Value_x*df.Value_y).drop(columns=['Value_x', 'Value_y'])