让我们说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条件来做到这一点,但是我正在寻找一种非常有效且新颖的方法,这种方法太快了。任何创新的想法都将受到赞赏。
答案 0 :(得分:2)
使用lookup
df1['Target']=df2.set_index('col_1').lookup(df1.col_1, df1.col_2)