Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.any方法的使用。

DataFrame.any(axis=0, bool_only=None, skipna=True, level=None, **kwargs)                                              [source]

返回任何元素是否为真(可能在轴上)。

返回False,除非在一个series中或沿着Dataframe轴至少有一个元素为真或等效(例如,非零或非空)。

参数:

axis : {0 or ‘index’, 1 or ‘columns’, None}, 默认 0

指出哪个axis或哪个axis应该减少

0 / ‘index’ : 减少索引,返回索引为原始列标签的Series。

1 / ‘columns’ : 减少列,返回一个索引为原始索引的Series。

None:减少所有轴,返回一个标量。

bool_only : bool, 默认 None

只包含布尔列。如果没有,将尝试使用一切,

然后只使用布尔数据。不适用于Series。

skipna : bool, 默认 True

排除NA/null值。如果整个行/列为NA并且skipna为True

那么结果将为False,对于空行/列也是如此。

如果skipna是False,那么NA就被当作True

因为它们不等于零。

level : int 或 level name, 默认 None

如果轴是一个多索引(层次结构),

则沿着特定的级别进行计数,并折叠成一个Series。

**kwargs : any, 默认 None

附加关键字没有效果,但是可以接受与NumPy兼容。

返回:

Series 或 DataFrame

如果指定了level,则返回DataFrame;否则,返回Series。

例如

Series

对于Series输入,输出是一个标量,指示任何元素是否为True。

>>> pd.Series([False, False]).any()
False
>>> pd.Series([True, False]).any()
True
>>> pd.Series([]).any()
False
>>> pd.Series([np.nan]).any()
False
>>> pd.Series([np.nan]).any(skipna=False)
True

DataFrame

每个列是否至少包含一个True元素(默认值)

>>> df = pd.DataFrame({"A": [1, 2], "B": [0, 2], "C": [0, 0]})
>>> df
A B C
0 1 0 0
1 2 2 0
>>> df.any()
A True
B True
C False
dtype: bool

对列进行聚合

>>> df = pd.DataFrame({"A": [True, False], "B": [1, 2]})
>>> df
A B
0 True 1
1 False 2
>>> df.any(axis='columns')
0 True
1 True
dtype: bool
>>> df = pd.DataFrame({"A": [True, False], "B": [1, 0]})
>>> df
A B
0 True 1
1 False 0
>>> df.any(axis='columns')
0 True
1 False
dtype: bool

使用axis=None聚合整个DataFrame

>>> df.any(axis=None)
True

空DataFrame的any是空的Series

>>> pd.DataFrame([]).any()
Series([], dtype: bool)