根据列值用另一个数据框的值填充数据框
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.
的循环
dfrB['z'] = dfrB.merge(dfrA, on=['x', 'y'], how='left')['z']
print(dfrB)
x y z
0 1 2 7
1 2 3 12
我有两个数据框:
第一个,假设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.
的循环dfrB['z'] = dfrB.merge(dfrA, on=['x', 'y'], how='left')['z']
print(dfrB)
x y z
0 1 2 7
1 2 3 12