Удалить строки с заданным значением подстроки - PullRequest
0 голосов
/ 23 октября 2018

Удаление строк из фрейма данных с учетом того, что подстрока присутствует в строке конкретного столбца.

df:

Parent  Child   score
1stqw   Whoert      0.305125
tWowe   Tasert      0.308132
Worert  Picert      0.315145

substrings = [Wor, Tas]

Удаление строк, имеющихподстроки.

Обновлено df:

 Parent Child   score
1stqw   Whoert      0.305125

спасибо !!

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Вы можете объединить и затем использовать pd.Series.str.contains:

L = ['Wor', 'Tas']

df = df[~(df['Parent'] + df['Child']).str.contains('|'.join(L))]

print(df)

  Parent   Child     score
0  1stqw  Whoert  0.305125

Об эффективности / производительности см. Фильтрация панд для нескольких подстрок в серии .

0 голосов
/ 23 октября 2018

Используйте str.contains с apply в подмножестве DataFrame, а затем добавьте any для проверки хотя бы одного True на строку:

cols = ['Parent', 'Child']
mask = df[cols].apply(lambda x: x.str.contains('|'.join(substrings))).any(axis=1)

Или объединить буленам маску вместе | (побитовое ИЛИ):

mask = (df['Parent'].str.contains('|'.join(substrings)) | 
        df['Child'].str.contains('|'.join(substrings)))

df = df[~mask]
print (df)
  Parent   Child     score
0  1stqw  Whoert  0.305125
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...