我有两个数据框 A 和 B,如果名称存在于数据集中,我想在两个数据框中的名称列之间进行匹配 BI 需要在数据集 A 中使用数据集 B 的 ID 创建一个新列(如果不存在)返回 0
这是我写的代码
#data B
email name id
hi@amal.com amal call 6
hi@hotmail.com amal 6
hi@gmail.com AMAL boy 6
hi@boy.com boy 7
hi@hotmail.com boy 7
hi@call.com call AMAL 9
hi@hotmail.com boy 7
hi@dog.com dog 8
hi@outlook.com dog 8
hi@gmail.com dog 8
#data A
id name
1 amal
1 AMAL
2 call
4 dog
3 boy
首先我创建包含函数
A.name.str.contains('|'.join(B.name))
然后我尝试创建一个列
A["new"] = np.where(A.name.str.contains('|'.join(B.name))==True, B.id, 0)
但我得到这个错误
ValueError: operands could not be broadcast together with shapes (5,) (10,) ()
我所期望的是
id name new
1 amal 6
1 AMAL 0
2 call 0
4 dog 7
3 boy 8
有什么帮助吗?
千万里不及你
相关分类