数据框中的动态正则表达式

时间:2019-10-31 00:35:26

标签: python regex pandas

具有如下数据框:

df= pd.DataFrame({'category':['Fishing','Refrigeration','store'],'synonyms_text':['seafood','foodlocker',' food']})

以及以下列表:

list_desc=['FOOD', 'GROWERS', 'INTERNATIONAL']

如何遍历list_desc以创建要在数据框中使用的动态正则表达式?

for word in list_desc:
    print(word.lower())
    df_tmp= df.loc[df['synonyms_text'].str.contains(r'\bfood\b')]

food必须用word变量代替。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以像使用format()一样使用r'\b{0}\b'.format(word)动态构建正则表达式

示例:

for word in list_desc:
    df_tmp= df.loc[df['synonyms_text'].str.contains(r'\b{0}\b'.format(re.escape(word.lower())))]

更多信息:How to use a variable inside a regular expression?