在 DataFrame 中标记品牌关键字

我目前正在使用 Python 进行关键字分析。我有一个如下所示的 DataFrame df:


keyword        url

camera         canon.com

canon camera   canon.com

在 SEO 中,您可以区分品牌关键字和通用关键字。现在,第一个是通用的,而第二个包含 URL 中提到的品牌名称。基于此,我想建立一个新列df['match']并根据以下条件填充它:


brands = ['canon', 'canon.de']  


if df['keyword'] in brands == True

       df['match'] = 'brand'

    else

       df['match'] = 'generic'

我知道语法完全错误,但我希望你能得到我想要实现的目标:


keyword        url          match

camera         canon.com    generic

canon camera   canon.com    brand


慕丝7291255
浏览 86回答 1
1回答

幕布斯6054654

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    match0        camera  canon.com  generic1  canon camera  canon.com    brand编辑:列表中的值可以与正则表达式Series.str.contains的连接值一起使用:|ormask = df['keyword'].str.contains('|'.join(brands))df['match'] = np.where(mask, 'brand', 'generic')print (df)        keyword        url    match0        camera  canon.com  generic1  canon camera  canon.com    brand
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python