如何在掩码后检查列中的所有值是否为假

问题描述

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

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

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

非常感谢任何见解。

解决方法

我认为你可以:

any(m)

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

,

使用Series.any

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