1

我已经将一个简单的查询日志导入到 Python 中的 pandas 数据框中(见图),并且想知道最有效的方法是提取包含“关键字”列中包含的任何给定关键字的所有行。

我可以遍历数据框 - 但感觉可能有一种使用数组/掩码的更快方法。

非常感谢任何帮助。

在此处输入图像描述

4

2 回答 2

5

您可以使用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
于 2013-05-23T10:12:34.547 回答
3
[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
于 2013-05-23T10:09:35.843 回答