Filtering pandas dataframe with multiple Boolean columns

前端 未结 5 2023
闹比i
闹比i 2020-12-05 07:26

I am trying to filter a df using several Boolean variables that are a part of the df, but have been unable to do so.

Sample data:

A | B | C | D
John         


        
5条回答
  •  爱一瞬间的悲伤
    2020-12-05 08:21

    Hooray! More options!

    np.where

    df[np.where(df.C | df.D, True, False)]
    
                 A   B      C      D
    0     John Doe  45   True  False
    2  Alan Holmes  55  False   True
    3   Eric Lamar  29   True   True  
    

    pd.Series.where on df.index

    df.loc[df.index.where(df.C | df.D).dropna()]
    
                   A   B      C      D
    0.0     John Doe  45   True  False
    2.0  Alan Holmes  55  False   True
    3.0   Eric Lamar  29   True   True
    

    df.select_dtypes

    df[df.select_dtypes([bool]).any(1)]   
    
                 A   B      C      D
    0     John Doe  45   True  False
    2  Alan Holmes  55  False   True
    3   Eric Lamar  29   True   True
    

    Abusing np.select

    df.iloc[np.select([df.C | df.D], [df.index])].drop_duplicates()
    
                 A   B      C      D
    0     John Doe  45   True  False
    2  Alan Holmes  55  False   True
    3   Eric Lamar  29   True   True
    

提交回复
热议问题