如何通过检查 2 列中的值将列形式 1 df 映射到另一个 df

How to .map a column form 1 df for another df by checking the value in 2 columns

如何将 1 列映射到 2 列 ??

数据混乱,有些行有 ID 名称而不是 ID。 我可以创建一个新的 REF table 来替换这些 id_names 到 id,问题是有太多..

参考 table

google =

id   id_name      cost

154  campaign1    15
155  campaign2    12
1566  campaign33  12
158  campaign4    33

数据

cw = 

id  

154
155
campaign1    
campaign33
1566
158
campaign4

期望的输出


cw =

id            cost

154            15
155            12
campaign1      15
campaign33     12
1566           12
158            33
campaign4      33

我做了什么..

# Just work for one column

cw['cost'] = cw['id'].map(google.set_index('id')['cost'])


您可以 melt 和映射:

map_series = google.melt(id_vars='cost').set_index('value')['cost']

cw['cost'] = cw['id'].map(map_series)