2015-11-22 3 views
1

пул - это кадр данных, а один из столбцов - «имя» Если ключ == «Боб», то эта строка правильно дает мне все строки, где Name == ' Bob «:подмножество строк данных dataframe pandas путем сопоставления строк по столбцу

keyrows = pool[key == pool.Name] 

вместо этого я хочу, чтобы получить все строки, которые соответствуют„Bob“, как„Боб Джонс“и„Боб Марли“, и т.д.

Так что я изменил„==“до» 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)] 

делает именно то, что я хочу.

Смежные вопросы