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

问题描述 投票:0回答:1

如何将1列映射到2列?

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

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

参考表

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列映射到2列?目标是按ID将费用从REF表映射到Data。问题.map只是将1列与1列进行比较数据混乱,对于某些行,......>

python pandas concat
1个回答
1
投票

您可以melt并映射:

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

cw['cost'] = cw['id'].map(map_series)
© www.soinside.com 2019 - 2024. All rights reserved.