2015-11-22 66 views
1

池是一個數據幀,其中一列是「名稱」 如果key =='Bob',則該行正確地給我所有的行,其中Name =='鮑勃:熊貓數據框的子集行按列上的字符串匹配

keyrows = pool[key == pool.Name] 

我不是要得到所有匹配的行‘鮑勃’,像‘鮑勃·瓊斯’和‘鮑勃·馬利’等

所以我改變了‘==’到' in',但它不能如我所料:

keyrows = pool[key in pool.Name] 

我得到 KeyError:False

任何幫助將不勝感激。

+0

使用['.str.contains'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.contains.html)或['.str.match'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.match.html#pandas.Series.str.match)。看看[這裏](http://pandas.pydata.org/pandas-docs/stable/text.html#testing-for-strings-that-match-or-contain-a-pattern)舉例 –

回答

3

@ behzad.nouri給我的解決方案:

keyrows = pool[pool.Name.str.contains(key)] 

不正是我想要的。