我已经将一个简单的查询日志导入到 Python 中的 pandas 数据框中(见图),并且想知道最有效的方法是提取包含“关键字”列中包含的任何给定关键字的所有行。
我可以遍历数据框 - 但感觉可能有一种使用数组/掩码的更快方法。
非常感谢任何帮助。
您可以使用str.contains
,例如:
In [1]: df = pd.DataFrame([['abc', 1], ['cde', 2], ['efg', 3]])
In [2]: df
Out[2]:
0 1
0 abc 1
1 cde 2
2 efg 3
In [3]: df[0].str.contains('c')
Out[3]:
0 True
1 True
2 False
Name: 0, dtype: bool
In [4]: df[df[0].str.contains('c')]
Out[4]:
0 1
0 abc 1
1 cde 2
[3]: df = DataFrame(dict(A = ['foo','bar','bah','bad','bar'],B = range(5)))
In [4]: df
Out[4]:
A B
0 foo 0
1 bar 1
2 bah 2
3 bad 3
4 bar 4
In [5]: select = Series(['bar','bah'])
In [6]: df[df.A.isin(select)]
Out[6]:
A B
1 bar 1
2 bah 2
4 bar 4