【问题标题】:pandas apply filter for boolean typepandas 为布尔类型应用过滤器
【发布时间】:2021-08-13 15:12:29
【问题描述】:

这些是我的 DataFrame 的类型;

count     int64
word     object
cat1       bool
cat2     object
cat3       bool
dtype: object

如何过滤来自“cat1”和“cat2”的布尔值?

类似...

data[(data['cat1'].bool() == FALSE) & (data['cat3'].bool() == FALSE)]

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    只要做:

    data[(data['cat1'] == FALSE) & (data['cat2'] == FALSE)]
    

    cat2 是一个 object dtype 所以它可能是一个字符串,我想你想要:

    data[(data['cat1'] == FALSE) & (data['cat3'] == FALSE)]
    

    否则,如果它确实是字符串值,那么你可以这样做

    data[(data['cat1'] == FALSE) & (data['cat2'] == 'FALSE')]
    

    data[(data['cat1'] == FALSE) & (data['cat2'].str.contains('FALSE'))]
    

    【讨论】:

      【解决方案2】:

      你可以这样做,

      data[(data['cat1']==False) & (data['cat3']==False)]
      

      例子:

      test = pd.DataFrame({'word':'','cat1':bool(),'cat2':'','cat3':bool()},index=[])
      test.loc[0]=['test1',True,'try',False]
      test.loc[1]=['test1',False,'try',False]
      test[(test['cat1']==False) & (test['cat3']==False)]
      

      【讨论】:

        猜你喜欢
        • 2019-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-19
        • 2018-01-31
        • 2017-10-05
        • 2021-10-04
        • 1970-01-01
        相关资源
        最近更新 更多