如何映射多个数据框?

时间:2018-11-28 03:42:42

标签: python pandas

我想在两个数据帧之间进行映射

df_list
  a b
0 1 3
1 2 1
2 3 4
3 2 4
4 3 1

和df_name

 num_l name
0 1    Mark
1 2    John
2 3    Sara
3 4    David

然后得到这样的结果

result
  a b  name_a name_b
0 1 3  Mark   Sara
1 2 1  John   Mark
2 3 4  Sara   David
3 2 4  John   David
4 3 1  Sara   Mark

首先,我尝试创建从“ a”,“名称”和“ b”,“名称”收集的数据帧,然后将其连接在一起,但是引用df_list的顺序不起作用。预先谢谢你。

1 个答案:

答案 0 :(得分:2)

您可以使用replace

df2=df.replace(dict(zip(df1.num_l,df1.name))).add_prefix('name_')
pd.concat([df,df2],1)
   a  b name_a name_b
0  1  3   Mark   Sara
1  2  1   John   Mark
2  3  4   Sara  David
3  2  4   John  David
4  3  1   Sara   Mark