Pandas:如何从另一个数据帧中找到名称?

2024-09-24 02:24:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧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     

Tags: 数据name名称id关系johndf1df2
2条回答

如果没有索引以外的公共值

你可以试试concat function

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

Series使用双^{}

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

相关问题 更多 >