使用 Fuzzywuzzy 关键字匹配过滤数据框

Filtering a dataframe using Fuzzywuzzy keyword matches

新手 Python 用户在这里。

我有一个从 csv 文件导入的数据框,我需要从 from_data 列搜索 "Alert" 和 "Amber" 关键字(搜索上、下或组合两种情况)。

这是我名为 df 的数据框的内容:

  Id_No      from_data 
  1          Alert g12134 CONFIRMATION CODE A27 
  1          ALERT g12134 CONFIRMATION CODE A28
  5          g12136  CONFIRMATION CODE B01 - RED
  5          g12136  CONFIRMATION CODE B02 - AMBER
  6          g12136  CONFIRMATION CODE B01 - RED
  6          g12136  CONFIRMATION CODE B02 - AMBER
  9          Alert g12134  CONFIRMATION CODE A27
  15         **ERROR** no alert was registered
  17         g12136  CONFIRMATION CODE B02 - AMBER
  19         g12136  CONFIRMATION CODE B03 - GREEN

这是我想要的(在新数据框中):

 id_no  from_data
 1      Alert g12134  CONFIRMATION CODE A27
 1      ALERT g12134  CONFIRMATION CODE A28
 9      Alert g12134  CONFIRMATION CODE A27
 5      g12136 CONFIRMATION CODE B02 - AMBER
 15     **ERROR** no alert was registered 
 17     g12136  CONFIRMATION CODE B02 - AMBER

我整天都在网上搜索并阅读了很多模糊不清的文章,但我似乎无法获得任何代码来给我想要的结果。

任何提供解决方案的帮助将不胜感激(并阻止我发疯!!)

谢谢

str.contains()

使用布尔索引
df[df['from_data'].str.lower().str.contains('alert|amber')]

   Id_No                              from_data
0      1     Alert g12134 CONFIRMATION CODE A27
1      1     ALERT g12134 CONFIRMATION CODE A28
3      5  g12136  CONFIRMATION CODE B02 - AMBER
5      6  g12136  CONFIRMATION CODE B02 - AMBER
6      9    Alert g12134  CONFIRMATION CODE A27
7     15      **ERROR** no alert was registered
8     17  g12136  CONFIRMATION CODE B02 - AMBER