我有一个包含日志错误消息的数据帧。我们需要的列看起来像这样:
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