DataFrame.any(axis=0, bool_only=None, skipna=True, level=None, **kwargs) [source]
返回任何元素是否为真(可能在轴上)。
返回False
,除非在一个series中或沿着Dataframe
轴至少有一个元素为真或等效(例如,非零或非空)。
参数: | axis : {0 或 ‘index’, 1 或 ‘columns’, None}, 默认 0 指出哪个axis或哪个axis应该减少 0 / ‘index’ : 减少索引, 返回索引为原始列标签的Series。 1 / ‘columns’ : 减少列, 返回一个索引为原始索引的Series。 None:减少所有轴,返回一个标量。 bool_only : 只包含布尔列。如果没有, 将尝试使用一切, 然后只使用布尔数据。 不适用于Series。 skipna : 排除NA/null值。 如果整个行/列为NA 并且skipna为 那么结果将为 对于空行/列也是如此。 如果skipna是 那么NA就被当作 因为它们不等于零。 level : 默认 如果轴是一个多索引(层次结构), 则沿着特定的级别进行计数, 并折叠成一个Series。 **kwargs : 附加关键字没有效果,但是可以接受与NumPy兼容。 |
返回: | Series 或 DataFrame 如果指定了level,则返回DataFrame;否则,返回Series。 |
例如,
1)基本用法
import pandas as pd import numpy as np # 创建示例 DataFrame df = pd.DataFrame({ 'A': [1, 2, 3, 0], 'B': [0, 0, 0, 0], 'C': [np.nan, np.nan, 3, 4] }) # 检查每列是否有任何非零值 print(df.any())
2)沿行方向检查
import pandas as pd import numpy as np # 创建示例 DataFrame df = pd.DataFrame({ 'A': [1, 2, 3, 0], 'B': [0, 0, 0, 0], 'C': [np.nan, np.nan, 3, 4] }) # 检查每行是否有任何非零值 print(df.any(axis=1))
3)忽略缺失值
import pandas as pd import numpy as np # 创建示例 DataFrame df = pd.DataFrame({ 'A': [1, 2, 3, 0], 'B': [0, 0, 0, 0], 'C': [np.nan, np.nan, 3, 4] }) # 检查每列是否有任何非零值,忽略缺失值 print(df.any(skipna=True))
4)仅检查布尔类型列
import pandas as pd import numpy as np # 创建示例 DataFrame df = pd.DataFrame({ 'A': [1, 2, 3, 0], 'B': [0, 0, 0, 0], 'C': [np.nan, np.nan, 3, 4] }) # 创建包含布尔类型的 DataFrame df_bool = pd.DataFrame({ 'A': [True, False, True], 'B': [False, False, False], 'C': [True, True, False] }) # 检查每列是否有任何 True 值 print(df_bool.any(bool_only=True))
5)多级索引
import pandas as pd import numpy as np # 创建示例 DataFrame df = pd.DataFrame({ 'A': [1, 2, 3, 0], 'B': [0, 0, 0, 0], 'C': [np.nan, np.nan, 3, 4] }) # 创建多级索引 DataFrame df_multi = pd.DataFrame({ 'A': [1, 2, 3, 0], 'B': [0, 0, 0, 0], 'C': [np.nan, np.nan, 3, 4] }, index=pd.MultiIndex.from_tuples([ ('x', 'one'), ('x', 'two'), ('y', 'one'), ('y', 'two') ])) # 检查沿级别 0 是否有任何非零值 print(df.groupby(level=0).any())
6)Series 使用示例
对于Series输入,输出是一个标量,指示任何元素是否为True。
import pandas as pd import numpy as np # 示例1: 全部元素为 False series1 = pd.Series([False, False]) print(series1.any()) # 输出: False # 示例2: 存在 True 元素 series2 = pd.Series([True, False]) print(series2.any()) # 输出: True # 示例3: 空 Series series3 = pd.Series([], dtype=bool) print(series3.any()) # 输出: False # 示例4: 含有 NaN 的 Series series4 = pd.Series([np.nan]) print(series4.any()) # 输出: False # 示例5: 含有 NaN 的 Series,skipna=False print(series4.any(skipna=False)) # 输出: True
7)DataFrame 使用示例
import pandas as pd import numpy as np # 创建第一个示例 DataFrame df1 = pd.DataFrame({"A": [1, 2], "B": [0, 2], "C": [0, 0]}) print("DataFrame 1:") print(df1) print("\n每列是否至少包含一个True元素:") print(df1.any()) print("\n") # 创建第二个示例 DataFrame df2 = pd.DataFrame({"A": [True, False], "B": [1, 2]}) print("DataFrame 2:") print(df2) print("\n对列进行聚合:") print(df2.any(axis='columns')) print("\n") # 创建第三个示例 DataFrame df3 = pd.DataFrame({"A": [True, False], "B": [1, 0]}) print("DataFrame 3:") print(df3) print("\n对列进行聚合:") print(df3.any(axis='columns')) print("\n") # 使用axis=None聚合整个DataFrame print("DataFrame 3的整体聚合:") print(df3.any(axis=None)) print("\n") # 空 DataFrame 的 any 是空的 Series empty_df = pd.DataFrame([]) print("空 DataFrame:") print(empty_df) print("\n空 DataFrame 的 any:") print(empty_df.any())