根据列值用另一个数据框的值填充数据框

fill a dataframe with value of another dataframe according to columns value

我有两个数据框:

第一个,假设dfrA

x,y,z
0,0,1
0,1,2
0,2,3
0,3,4
1,0,5
1,1,6
1,2,7
1,3,8
2,0,9
2,1,10
2,2,11
2,3,12
3,0,13
3,1,14
3,2,15
3,3,16

还有一个,比方说 dfrB

x,y
1,2
2,3

我想根据 dfrA 中的 z 值在 dfrB 中添加一列,它与 dfrB 具有相同的 x 和 y。

换句话说,我预计:

x,y,z
1,2,7
2,3,12

我可以将一个空列添加到 dfrB:

df_support = pd.DataFrame(columns=['z'])
dfrB = dfrB.join(df_support, how="outer")

现在如何填充 dfrB 中的 z 列?我想避免做一个充满 if.

的循环

你可以试试pandas.DataFrame.merge

dfrB['z'] = dfrB.merge(dfrA, on=['x', 'y'], how='left')['z']
print(dfrB)

   x  y   z
0  1  2   7
1  2  3  12