熊猫:对一系列布尔值进行和/或操作

时间:2013-07-17 13:36:51

标签: python pandas

我有一个大熊猫系列的布尔,并想知道在整个系列中应用“或”或“和”的最佳方法是什么。我正在思考Haskell

的内容
fold 

根据我的理解,大熊猫

.apply

会将一个函数应用于系列中的每个元素,所以似乎没有做我需要的。

谢谢, 安

1 个答案:

答案 0 :(得分:1)

要获得 True,如果系列的第一个和所有其他元素都是 True,我们可以使用 all 方法,如下所示:

import pandas as pd
pd.Series([False, False, False]).all()
# False
pd.Series([False, False, True]).all()
# False
pd.Series([True, True, True]).all()
# True

要获得 True,如果系列的第一个或任何其他元素是 True,我们可以使用 any 方法,如下所示:

pd.Series([False, False, False]).any()
# False
pd.Series([False, False, True]).any()
# True
pd.Series([True, True, True]).any()
# True

PS:注意不包含(仅)布尔值的系列的行为:

pd.Series([]).all()
# True
pd.Series([True, True, 1.0]).all()
# 1.0
pd.Series([True, True, 'foobar']).all()
# 'foobar'
pd.Series(['Non empty', 'strings are', 'truthy']).all()
# 'truthy'

pd.Series([]).any()
# False
pd.Series([False, False, 0.0]).any()
# 0.0
pd.Series([False, False, '']).any()
# ''
pd.Series([False, '', '<-- the empty string is "falsy"']).any()
# '<-- the empty string is "falsy"'
相关问题