1.输入:我有 2 个数据框
ID PS
1 a
2 c
3 d
另一个数据框:
emp PS
pp a
qq b
rr c
2.预期结果:如果PS相同,我想替换df1中df2的值。
ID PS
1 pp
2 rr
3 d
代码我试过了:
df1= df1.to_dict()
df2= df2.to_dict()
df1.replace({"PS": df2.values()})
df1
但是替换没有发生。
答案 0 :(得分:1)
IIUC,你可以试试:
df1['PS'] = df1.PS.replace(dict(df2.iloc[:, ::-1].values))
输出:
ID PS
0 1 pp
1 2 rr
2 3 d
答案 1 :(得分:1)
试试:
(df2.merge(df1, how='right', on=['PS'])
.fillna(method='bfill', axis=1)[['ID', 'emp']]
.rename(columns={'emp': 'PS'}))
输出:
ID PS
0 1 pp
1 2 rr
2 3 d