【发布时间】:2021-06-22 20:15:50
【问题描述】:
我在 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 |
+---+----+----+---+
通过在 Table A、0、1 和 2 中的 Table B、0 列中查找每个关联值并返回这些值中的最大值,可以找到第 3 列。
例如:
第 3 行显示了 A、C 和 D 的组合。因此列3 在Table B 中查找A,值为5,然后在Table B 中查找C,值为7。最后它在Table B 中查找D,其值为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] 它告诉我每个列需要相同数量的列
【问题讨论】:
标签: python python-3.x pandas merge