如果行符合列表 (eligibility_criteria) 条件,我想从我的数据框中排除这些行,除非关税列以“***”开头。这是我的:
import pandas as pd
df = df[~df['eligibility'].str.contains(eligibility_criteria, na=False)] #This works
我如何添加这个“except when”限定符...
#df['tariff'].str.startswith("***")
最佳答案
如果关税以 “***”
开头,则令 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("***")]
关于python - 从数据框中排除行,除非满足另一个列条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56124738/