根据关键字匹配创建新列

Create new column based on a keyword match

假设我有这个 DF:

df = pd.DataFrame({'keyword': ['Rayban', 'Rayban lens', 'Sunglasses RayBan', 'Sunglasses'],'Volume':[50,100,150,200]})

             keyword  Volume
0             Rayban      50
1        Rayban lens     100
2  Sunglasses RayBan     150
3         Sunglasses     200

我需要根据关键字匹配创建一个新列“品牌”。如果关键字列中的行包含字符串“Rayban”,我需要“品牌”列中的行获取值“品牌”。

我该怎么做?

基于上面的例子,我需要这样的输出:

             keyword  Volume  Brand
0             Rayban      50  brand
1        Rayban lens     100  brand
2  Sunglasses RayBan     150  brand
3         Sunglasses     200  non-brand

我是初学者,如果有什么不清楚的地方,请告诉我。感谢您的帮助!

尝试通过 str.contains():

df['Brand']='non-brand'
df.loc[df['keyword'].str.contains('Rayban',case=False),'Brand']='brand'

import numpy as np

df['Brand']=np.where(df['keyword'].str.contains('Rayban',case=False),'brand','non-brand')

df 的输出:

    keyword         Volume      Brand
0   Rayban              50      brand
1   Rayban lens         100     brand
2   Sunglasses RayBan   150     brand
3   Sunglasses          200     non-brand