给定一个数据框和一个如下的字典:
Col A Col B
f3s34Roger nan
bll23Dawn nan
Misty3r2w nan
efJunea4l nan
vendor_dict = {'Roger': 'cups','Charlie':'plates','Misty':'bowls'}
我想搜索每一行以查看 Col 'A' 是否包含字典中的键。如果是这样,我想将 Col 'B' 设置为键的值。
仅使用静态值进行测试,这有效:
df['Col B'] = np.where(df['Col A'].str.find('Roger'),'', 'cups')
但这并没有给我字典映射。我试过:
df['Col B'] = np.where(df['Col A'].str.find().map(vendors)
但这不正确。有任何想法吗?
使用
str.findall
然后使用map
df['Col B']=df['Col A'].str.findall('|'.join(vendor_dict.keys())).str[0].map(vendor_dict)
0 cups
1 NaN
2 bowls
3 NaN
Name: ColA, dtype: object