我目前正在使用 Python 進行關鍵字分析。我有一個如下所示的 DataFrame df:keyword urlcamera canon.comcanon camera canon.com在 SEO 中,您可以區分品牌關鍵字和通用關鍵字?,F在,第一個是通用的,而第二個包含 URL 中提到的品牌名稱?;诖耍蚁虢⒁粋€新列df['match']并根據以下條件填充它:brands = ['canon', 'canon.de'] if df['keyword'] in brands == True df['match'] = 'brand' else df['match'] = 'generic'我知道語法完全錯誤,但我希望你能得到我想要實現的目標:keyword url matchcamera canon.com genericcanon camera canon.com brand
1 回答

幕布斯6054654
TA貢獻1876條經驗 獲得超7個贊
keyword
一個想法是在列表理解中在 splited 中進行測試,any
然后通過以下方式設置新列numpy.where
:
mask = [any(x in y for x in x.split()) for x, y in df[['keyword', 'url']].values]
df['match'] = np.where(mask, 'brand', 'generic')
print (df)
keyword url match
0 camera canon.com generic
1 canon camera canon.com brand
編輯:列表中的值可以與正則表達式Series.str.contains
的連接值一起使用:|
or
mask = df['keyword'].str.contains('|'.join(brands))
df['match'] = np.where(mask, 'brand', 'generic')
print (df)
keyword url match
0 camera canon.com generic
1 canon camera canon.com brand
添加回答
舉報
0/150
提交
取消