Python 当a、b或c为true时删除数据帧中的行
我有一个数据帧df,它有五列。第一列名为Phase,包含文本。我想消除数据帧中相位为“xyz”或“ab”或“tlimit”的任何行 我尝试了以下方法,但无效:Python 当a、b或c为true时删除数据帧中的行,python,pandas,Python,Pandas,我有一个数据帧df,它有五列。第一列名为Phase,包含文本。我想消除数据帧中相位为“xyz”或“ab”或“tlimit”的任何行 我尝试了以下方法,但无效: df=df[df.Phase != 'xyz' or 'ab' or 'tlimit'] 我还尝试: df=df[df.Phase != 'xyz' or df.Phase!='ab' or df.Pase !='tlimit'] df=df[~df.Phase.isin(['xyz','ab','tlimit'])]一个集合要比一个
df=df[df.Phase != 'xyz' or 'ab' or 'tlimit']
我还尝试:
df=df[df.Phase != 'xyz' or df.Phase!='ab' or df.Pase !='tlimit']
df=df[~df.Phase.isin(['xyz','ab','tlimit'])]
一个集合要比一个列表好。如果它有三个元素,那么关心差异是愚蠢的。如果要排除的项目集是可变的,则OP可以将其写入一个助手函数,该函数使用例如,在相关上下文的持续时间内将其作为一个集合使用。但是额外的工作并不是这个问题的一部分。@Emre实际上,isin做的第一件事是将其设置为一个集合,但这更多的是一个实现细节(将来可能是一个更低级的对象)。这是负号还是tilda?当我这样做时,我使用减号。它是相同的吗?它是一个平铺,用于数组中每个元素的逻辑求反。