2 回答

TA贡献1906条经验 获得超3个赞
您可以将自定义 lambda 函数从这里传递给np.where:
import re
f = lambda x: bool(re.search(r'\b{}\b'.format(x['BrandName']), x['Name']))
testdf['match'] = np.where(testdf.apply(f, axis = 1), "Unknown", testdf["BrandName"])
print (testdf)
Name BrandName match
0 Coca Cola Coca Cola Unknown
1 Coca Cola cherry Coca Cola Unknown
2 Coca Cola life Coca Cola Unknown
3 Coca Cola Life Coca Cola Unknown

TA贡献1815条经验 获得超13个赞
这是使用 的一种mask方法apply:
testdf['BrandName'] = (testdf.BrandName.mask(testdf.apply(
lambda x: x.BrandName in x.Name, axis=1),
'Unkown'))
Name BrandName
0 Coca Cola Unkown
1 Coca Cola cherry Unkown
2 Coca Cola life Unkown
3 Coca Cola Life Unkown
添加回答
举报