python - Pandas:如何从另一个数据框中查找名称?

标签 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     

最佳答案

使用双 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

关于python - Pandas:如何从另一个数据框中查找名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50580759/

相关文章:

c - 合并排序 - 错误输出

python - 如何使用 Python 以编程方式从许多单页 TIFF 中构建多页 TIFF?

python - 使排列函数更有效

python - 无法在 'elementsFromPoint' : The provided double value is non-finite 上执行 'Document'

python - 合并2个数据框

r - 使用合并函数从 xts 对象获取最大值

Python Fabric 脚本报告已完成但无法正常工作

python - 自动化轮类时间,同时考虑限制

python - Pandas:将所有列从字符串转换为数字,除了两个?

python - Pandas:将 DF 拆分为多个 csv