3

我有一个熊猫系列的布尔值,想知道将“或”或“和”应用于整个系列的最佳方法是什么。我在想一些类似于 Haskell 的东西

fold 

据我了解,熊猫

.apply

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

谢谢,安妮

4

1 回答 1

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"'
于 2021-07-25T10:14:34.323 回答