Фильтрация фрейма данных с использованием str.contains (''), но с исключением - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь отфильтровать строки в столбце моего фрейма данных 'PRODUCT' при использовании str.contains('DE'). DE колеблется от DE001 до DE999.

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

Я использую df2[df2['PRODUCT'].str.contains("DE")]. Кто-нибудь может предложить код для этого или более эффективный способ сделать это? Спасибо, что ответили. Извините, все еще начинающий программист.

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете создать 2 маски: одну для проверки первых 2 символов, а другую для проверки всей строки. Для второго условия мы можем использовать ~ для обозначения отрицательного условия. Затем объедините 2 логические маски с оператором &.

mask1 = df2['PRODUCT'].str[:2] == 'DE'
mask2 = ~df2['PRODUCT'].isin(['DE998', 'DE999'])

res = df2[mask1 & mask2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...