如果行符合列表(eligibility_criteria)条件,我想从数据框中排除行,除非价目表列以“ ***”开头。这就是我所拥有的:
import pandas as pd
df = df[~df['eligibility'].str.contains(eligibility_criteria, na=False)] #This works
如何添加此'except when'限定词...
#df['tariff'].str.startswith("***")
答案 0 :(得分:5)
让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("***")]