【Pandas】pandas DataFrame all

发布于:2025-05-10 ⋅ 阅读:(15) ⋅ 点赞:(0)

Pandas2.2 DataFrame

Computations descriptive stats

方法 描述
DataFrame.abs() 用于返回 DataFrame 中每个元素的绝对值
DataFrame.all([axis, bool_only, skipna]) 用于判断 DataFrame 中是否所有元素在指定轴上都为 True

pandas.DataFrame.all()

pandas.DataFrame.all() 方法用于判断 DataFrame 中是否所有元素在指定轴上都为 True。它是进行逻辑“与”操作的聚合函数,常用于检查数据是否满足某些布尔条件。


一、方法签名
DataFrame.all(axis=0, bool_only=None, skipna=True)
参数说明:
参数 类型 描述
axis {0/‘index’, 1/‘columns’}, 默认 0 指定判断方向:0 表示按列判断(返回每列是否全为 True),1 表示按行判断(返回每行是否全为 True)
bool_only bool, 默认 None 若为 True,仅考虑布尔类型的列;若为 False,则尝试将非布尔列转换为布尔值进行判断(如 0 为 False,非零为 True)
skipna bool, 默认 True 是否跳过 NaN 值。若为 TrueNaN 被视为不影响判断;若为 False,含 NaN 的行/列结果为 NaN

二、返回值
  • 返回一个 Series,表示每一行或每一列是否全部为 True
  • axis=0,索引为列名;若 axis=1,索引为行索引。

三、使用示例及结果
示例1:默认参数(按列判断)
import pandas as pd

df = pd.DataFrame({
    'A': [True, True, True],
    'B': [True, False, True],
    'C': [1, 2, 3],
    'D': [0, 1, 2]
})

result = df.all()
print(result)

输出:

A     True
B    False
C     True
D    False
dtype: bool

解释:

  • 列 A 全为 TrueTrue
  • 列 B 含有 FalseFalse
  • 列 C 非零值都被视为 TrueTrue
  • 列 D 含有 0False

示例2:按行判断(axis=1
result = df.all(axis=1)
print(result)

输出:

0     True
1    False
2     True
dtype: bool

解释:

  • 第0行:[True, True, 1, 0] → 所有值为真?True(注意:0 是 False)
  • 第1行:[True, False, 2, 1] → 包含 FalseFalse
  • 第2行:[True, True, 3, 2] → 全部为真 → True

示例3:设置 bool_only=True
result = df.all(bool_only=True)
print(result)

输出:

A     True
B    False
dtype: bool

解释:

  • 只考虑布尔类型列(即列 A 和 B),忽略数值列 C 和 D。

示例4:设置 skipna=False 并包含 NaN
import numpy as np

df_with_nan = pd.DataFrame({
    'X': [True, np.nan, True],
    'Y': [False, True, True]
})

result = df_with_nan.all(skipna=False)
print(result)

输出:

X       NaN
Y     False
dtype: object

解释:

  • 列 X 含有 NaN,且 skipna=False → 结果为 NaN
  • 列 Y 含有 False → 整体为 False

四、适用场景
场景 描述
数据校验 检查某列或某行是否全部满足某个布尔条件(如非空、非零等)
特征筛选 在机器学习中判断某些布尔特征是否全部为 True
异常检测 检查是否存在 False 值,从而发现异常情况

五、注意事项
  • 非布尔列会被自动转换为布尔值(如 0 → False,非零 → True)
  • NaN 值默认被跳过(不影响判断),可通过 skipna=False 改变行为
  • bool_only=True 时,只作用于布尔类型列,忽略其他类型列

六、总结
特性 描述
功能 判断 DataFrame 中每个列或行是否所有元素都为 True
适用类型 布尔列、数值列(自动转换为布尔)
NaN 处理 默认跳过,可设为 skipna=False 显示 NaN
是否修改原数据 否,返回新 Series

all() 是一个非常实用的逻辑聚合函数,适用于对 DataFrame 进行整体布尔判断和数据校验。


网站公告

今日签到

点亮在社区的每一天
去签到