熊猫:如何从另一个数据框中查找名称?

时间:2018-05-29 09:23:10

标签: python pandas merge

我有两个数据框df1df2df1包含两个ID之间的关系,而df2包含ID的名称。

df1  ID1  ID2
0     0    2
1     1    3
2     3    2
3     1    2


df2   ID  name
0     0   John
1     1   Carl 
2     2   Eva
3     3   Julia

我想将名称信息添加到df1,例如:

df1  ID1  ID2   name1   name2 
0     0    2    John     Eva
1     1    3    Carl     Julia
2     3    2    Julia    Eva
3     1    2    Carl     Eva     

2 个答案:

答案 0 :(得分:1)

Series使用双倍map

s = df2.set_index('ID')['name']
df1['name1'] = df1['ID1'].map(s)
df1['name2'] = df1['ID2'].map(s)

替代:

df1 = df1.assign(name1=df1['ID1'].map(s), name2=df1['ID2'].map(s))
print (df1)
   df1  ID1  ID2  name1  name2
0    0    0    2   John    Eva
1    1    1    3   Carl  Julia
2    2    3    2  Julia    Eva
3    3    1    2   Carl    Eva

答案 1 :(得分:0)

如果没有索引

以外的常用值

您可以尝试concat function

pd.concat([df1, df2],axis =0)