我有一个大熊猫系列的布尔,并想知道在整个系列中应用“或”或“和”的最佳方法是什么。我正在思考Haskell
的内容fold
根据我的理解,大熊猫
.apply
会将一个函数应用于系列中的每个元素,所以似乎没有做我需要的。
谢谢, 安
答案 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"'