根据关键字匹配创建新列
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
假设我有这个 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