Исключить строки из фрейма данных, кроме случаев, когда выполняется другое условие столбца - PullRequest
3 голосов
/ 14 мая 2019

Я хотел бы исключить строки из моего информационного кадра, если они удовлетворяют условию списка (eligibility_criteria), если столбец тарифа не начинается с '***'.Вот что у меня есть:

import pandas as pd

df = df[~df['eligibility'].str.contains(eligibility_criteria, na=False)] #This works

Как мне добавить этот квалификатор «кроме случаев» ...

#df['tariff'].str.startswith("***")

1 Ответ

5 голосов
/ 14 мая 2019

Пусть E будет критерием приемлемости, а S будет истинным, если тариф начинается с "***".Вы хотите исключить строки, которые E unless S, что совпадает с E & ~S.И наоборот, вы хотите сохранить строки, у которых нет этого свойства: ~(E & ~S), что совпадает с ~E | S:

df = df[~df['eligibility'].str.contains(eligibility_criteria, na=False) | 
         df['tariff'].str.startswith("***")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...