Найти конкретные 1000 слов на фрейме - PullRequest
0 голосов
/ 26 марта 2020

Когда я ищу слово во фрейме данных, оно показывает мне каждую запись, содержащую эти буквы, но я действительно хочу, чтобы оно показывало мне это конкретное c слово. Можете ли вы помочь мне?

Вот и пример:

import pandas as pd
d = {'col1': ['ROL', 'ROVER','ROL','ROLLER','ROL','TROLLER','rol','rolter','nan'] ,'col2': [1, 2,3,4,5,6,7,9,10]}
df = pd.DataFrame(data=d)     
ROL = df[df['col1'].fillna(0).str.contains("ROL|rol",na=False)] 

Вывод примерно такой

current output image

но я действительно хотел что-то без этих записей

desired output image

1 Ответ

2 голосов
/ 26 марта 2020

Проблема с вашим кодом в том, что ваш str.contains("ROL|rol") соответствует всем значениям, кроме ROVER. Например, "ROLLER" также содержит "ROL".

Попробуйте использовать str.contains:

import re
ids = df.col1.str.contains('rol$|rol-|rol ', flags = re.IGNORECASE, regex = True, na = False)

А затем фильтр:

df[ids]

даст:

Out[115]: 
       col1  col2
0       ROL     1
2   ROL- 33     3
4    ROL -2     5
6  rol nº12     7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...