根据数据框可能包含的较小字符串筛选数据框的字符串值



我有一个包含日志错误消息的数据帧。我们需要的列看起来像这样:

message

"System error foo"  
"System error foo2"    
"System error foo"    
"System error foo"   
"System error foo3"

我需要统计所有的错误消息,不管它们是什么类型的错误。

通常,如果我知道一条特定的消息,我会过滤这样的数据帧:

df2 = df[df['message'] == 'System error foo3.']

但是我怎么能对所有只包含";"系统错误";再加上后面还有什么?我试过用紫苏,但它当然不起作用。是否存在某种python或pandas本地通配符运算符?或者我需要使用regex?

您可以使用包含

import pandas as pd
>>> df = pd.DataFrame(data=["System Error foo 1","System Error bar 2","System Error foo3","Error bar"],columns=["messages"])
>>> df
messages
0  System Error foo 1
1  System Error bar 2
2   System Error foo3
3           Error bar
>>> df[df['messages'].str.contains('System Error')]
messages
0  System Error foo 1
1  System Error bar 2
2   System Error foo3

最新更新