簡體   English   中英

當我嘗試從 python 中的 Pandas 數據框創建新列時,部分關鍵字匹配不起作用?

[英]Partial keyword match not working when I am trying to create a new column from a pandas data frame in python?

我有一個數據框描述,如下所述

  Description

我正在嘗試對描述列進行關鍵字搜索,並且我將關鍵字列表作為列表。

我當前的代碼只檢查完全匹配而不是部分匹配。如果行中存在多個關鍵字,這些關鍵字將被分隔符分隔並填充新列。

我的代碼

data=pd.read_excel('path_to_datafile.xlsx')
keywords=['dinner','government','Agents','entertainment','Agent']
keywords_lower = [item.lower() for item in keywords]
s=set(keywords_lower)
data['Keyword'] = data['Description'].apply(lambda x: '/'.join(set(x.lower().split()).intersection(s)))

如何才能做到這一點?

extractall將完成這項工作,但您必須首先構建模式:

...
keywords_lower = [item.lower() for item in keywords]
pattern = '(' + '|'.join('(?:' + i + ')' for i in keywords_lower) + ')'
df['Keyword'] = df['Description'].str.extractall(pattern, re.I).groupby(level=0).agg('/'.join)

你會得到:

                       Description           Keyword
0  Government entertainment people  Govern/entertain
1                  Dinner with CFO            Dinner
2  Commission to Agents government      Agent/govern

pattern在這里'((?:dinner)|(?:govern)|(?:agent)|(?:entertain))'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM