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 值。若为 True ,NaN 被视为不影响判断;若为 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 全为
True
→True
- 列 B 含有
False
→False
- 列 C 非零值都被视为
True
→True
- 列 D 含有
0
→False
示例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]
→ 包含False
→False
- 第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 进行整体布尔判断和数据校验。