用另一个字典的值替换字典的列值

时间:2021-06-16 10:24:38

标签: python dataframe dictionary

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

但是替换没有发生。

2 个答案:

答案 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