【问题标题】:NLP: How do I search for a string that has brackets?NLP:如何搜索带括号的字符串?
【发布时间】:2020-08-22 02:55:14
【问题描述】:

如果 col1 包含列表中的任何子字符串,我正在尝试过滤数据框。问题是一个子字符串包含导致错误的括号(图中以粗体显示)。有什么解决办法吗?谢谢!

index   fruit_name
0       "apple"
1       "pear"
2       "passionfruit (Passiflora)"
4       "grape"

substring_list = ['apple',**'(passiflora)'**]
df[df.fruit_name.str.contains('|'.join(substring_list))]

【问题讨论】:

    标签: python string pandas nlp contains


    【解决方案1】:

    () 之类的括号是正则表达式中的特殊字符,因此您需要在它们之前使用反斜杠 \,例如:

    df = pd.DataFrame({'fruit_name': ["apple","pear","passionfruit (Passiflora)", "grape"]})
    
    substring_list = ['apple','\(passiflora\)']
    print (df[df.fruit_name.str.contains('|'.join(substring_list), case=False)]) 
                      fruit_name
    0                      apple
    2  passionfruit (Passiflora)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 2022-07-28
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多