在Python中为Pandas数据帧提取行

时间:2013-05-23 10:03:52

标签: python pandas dataframe

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

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

非常感谢任何帮助。

enter image description here

2 个答案:

答案 0 :(得分:4)

您可以使用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

答案 1 :(得分: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