根据条件删除布尔行

时间:2020-09-09 15:48:25

标签: python python-3.x pandas dataframe

我有一个df,需要从中删除某些行。

我如何删除NIT为true且其余均为false的所有行?和FIB一样吗?

像这样丢弃所有行:

number ISM  AAAL    GSOG    GSI     AN      NIT     FIB
2     FALSE FALSE   FALSE   FALSE   FALSE   TRUE    FALSE
222   FALSE FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    

1 个答案:

答案 0 :(得分:1)

mask_NIT_true = df['NIT']
mask_all_exc_NIT_false = ~df.drop('NIT', axis=1).all(axis=1)
df = df.drop(df[mask_NIT_true & mask_all_exc_NIT_false].index)
mask_FIB_true = df['FIB']
mask_all_exc_FIB_false = ~df.drop('FIB', axis=1).all(axis=1)
df = df.drop(df[mask_FIB_true & mask_all_exc_FIB_false].index)