如何通过检查2列中的值来将1 df的列映射为另一个df

时间:2019-11-06 20:26:50

标签: python pandas concat

如何将1列映射到2列?

  • 目标是按ID将费用从REF表映射到Data。
  • 问题.map只是将1列与1列进行比较

数据混乱,对于某些行,有id名称而不是id。 我可以创建一个新的REF表以将这些id_names替换为id,问题是太多了。

Reff表

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'])


1 个答案:

答案 0 :(得分:1)

您可以melt并映射:

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

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