基于精确字符串匹配过滤Pandas数据框

时间:2017-07-18 10:44:57

标签: python string pandas

我想根据字符串的完全匹配过滤pandas数据框。

我有一个数据框如下

df1 = pd.DataFrame({'vals': [1, 2, 3, 4,5], 'ids': [u'aball', u'bball', u'cnut', u'fball','aballl']})    

我想过滤除了包含' aball'之外的所有行。你可以看到我还有一个带有ids ==' aballl'的条目。我希望过滤掉。因此,以下代码不起作用:

df1[df1['ids'].str.contains("aball")]    

即使str.match也不起作用

df1[df1['ids'].str.match("aball")] 

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:9)

保持简单,这应该有效:

df1[df1['ids'] == "aball"] 

答案 1 :(得分:2)

你可以试试这个:

df1[~(df1['ids'] == "aball")] 

基本上它会找到所有匹配的条目" aball"然后否定它。