【问题标题】:How to check if all values in column are False after mask掩码后如何检查列中的所有值是否为假
【发布时间】:2021-01-13 06:17:44
【问题描述】:

我有以下代码过滤掉某些值:

df_1['date'] = pd.to_datetime(df_1['date'])
df_2['date'] = pd.to_datetime(df_2['date'])
res = df_1.merge(df_2, on='order_id', suffixes=['_orig', ''])
m = res['date'].gt(res['date_orig']) | (res['date_orig'].isnull() & res['date'].notnull())

结果:

0    False
1    False
2    False
3    False
4    False
5    False
6    False
7    False
8    False
9    False

如何检查其中一个结果是否为真?

这是我的尝试:

if m is False:
    print('false')
else:
    print('true')

即使我有以下结果,尝试此操作时结果也始终为 false:

0    False
1    False
2    False
3    False
4    True
5    False
6    False
7    False
8    False
9    False

如果这些值中的任何一个为真,我希望它返回真。

非常感谢任何见解。

【问题讨论】:

    标签: python-3.x pandas dataframe series


    【解决方案1】:

    我认为你可以做到:

    any(m)
    

    如果 m 是一个布尔列表并且任何一个元素为 True,any(m) 将返回 True

    【讨论】:

      【解决方案2】:

      使用Series.any:

      if m.any():
          print('at least one true')
      else:
          print('all false')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-14
        • 2018-06-22
        • 1970-01-01
        • 2021-09-11
        • 1970-01-01
        • 2011-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多