此处是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
我整天都在网上搜索并且阅读了很多模糊的文章,但是似乎无法获得任何代码来提供想要的结果。
任何提供解决方案的帮助将不胜感激(并阻止我发疯!!)
谢谢
答案 0 :(得分:2)
将布尔索引与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