通过查找多个列值进行合并
我在 Pandas 中有以下 2 个数据框形式的表;
这是所有可能组合的列表:
Table A:
0 1 2
+---+----+----+
0| A |None|None|
+---+----+----+
1| B |None|None|
+---+----+----+
2|...| | |
+---+----+----+
3| A | C | D |
+---+----+----+
4| B | C | D |
+---+----+----+
这些是变量的关联值:
Table B:
0 1
+---+---+
0| A | 5 |
+---+---+
1| B | 2 |
+---+---+
2| C | 7 |
+---+---+
3| D | 4 |
+---+---+
我需要的是这样的:
0 1 2 3
+---+----+----+---+
0| A |None|None| 5 |
+---+----+----+---+
1| B |None|None| 2 |
+---+----+----+---+
2|...| | | |
+---+----+----+---+
3| A | C | D | 7 |
+---+----+----+---+
4| B | C | D | 7 |
+---+----+----+---+
当第3列是通过查找每个关联值从发现Table A,列0,1并且2在Table B列0,并返回最大的价值。
例如:
第 3 行显示A,C和的组合D。因此列3查找A中Table B,的值5,然后查找C中Table B,值7。最后它查找D中Table B,值4。在这 3 个数字中,7 是最大的,因此它返回。
到目前为止,我已经尝试pandas.merge过没有运气
更新:
我试过这个:
Final=df1.insert(3,column='min space',value=df1.join(df2.set_index(0),on=0).max())
但它只返回None并且不考虑 df1 中的多列,如果我尝试添加多列;[0,1,2]它告诉我我需要相同数量的列