如何使用第二个数据帧的列名和第一个数据帧的两列中的值来匹配两个数据帧

时间:2020-06-18 22:12:57

标签: python pandas merge

让我们说df_1如下:

col_1 | col_2 | col_3 | ...
12338 | MD   | ...
13438 | LG   | ...
62248 | SM   | ...
92338 | SI   | ...
32818 | SM   | ...
.
.
.

另外,这里是df_2:

col_1 | MD | LG | SM | SI
12338 | 10 | 29 | 8  | 7
12339 | 15 | 26 | 18 | 17
13438 | 78 | 18 | 77 | 1670
.
.
.

目标是根据df_2和col_1和col_2为df_1中的每一行找到目标值。 例如,对于df_1的第一行,目标值应为10,因为col_1为12338并在df_2中使用MD列。

对于df_2的第二行,目标值将为18,因为col_1为13438并在df_2中使用LG列。

col_1 | col_2 | Target | col_3 | ...
12338 | MD    | 10     | ...
13438 | LG    | 18     | ...
.
.
.

我想对非常大的数据帧执行上述过程。

我知道我可以使用合并甚至使用某些if条件来做到这一点,但是我正在寻找一种非常有效且新颖的方法,这种方法太快了。任何创新的想法都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

使用lookup

进行检查
df1['Target']=df2.set_index('col_1').lookup(df1.col_1, df1.col_2)
相关问题