如何使用多列python进行映射

时间:2018-08-17 12:31:39

标签: python python-3.x pandas dataframe

我有两个数据帧,如下所示:

df1:
col1    col2    col3
  1       2       A
  1       2       A
  3       4       B
  3       4       B

df2:
 col1    col2 
  1       2
  3       4

我想将df1的col3值放在df2中,如下所示:

result:
col1    col2    col3
 1        2       A
 3        4       B

我尝试使用以下代码进行映射,但收到错误消息,该怎么做

df2['col3'] = df2[['col1','col2]].map(df1.set_index(['col1','col2])['col3'])

1 个答案:

答案 0 :(得分:2)

使用:

df11 = df1[['col1','col2','col3']].drop_duplicates(['col1','col2'])
df = df2.merge(df11, on=['col1','col2'], how='left')
print (df)
   col1  col2 col3
0     1     2    A
1     3     4    B