Python pandas.DataFrame.all函数方法的使用

pandas.DataFrame.all 函数用于检查DataFrame的所有元素是否满足指定条件。它返回一个布尔值或布尔值的Series,表示每列(或每行)是否满足条件。默认情况下,它沿着列方向操作(即检查每列的所有元素)。本文主要介绍一下Pandas中pandas.DataFrame.all方法的使用。

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

返回是否所有元素都为真(可能在轴上)。

返回True,除非在一个series中或沿着Dataframe轴至少有一个元素是假的或等效的(例如zero 或 empty)。

参数:

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

指出哪个轴或哪个轴应该减少。

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

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

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

bool_only bool, 默认 None

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

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

skipna : bool, 默认 True

排除NA/null值。如果整个row/column为NA,

并且skipna为True,那么对于空row/column,

结果将为True。如果skipna是False

那么NA就被当作True,因为它们不等于零。

level : int 或 level name, 默认 None

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

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

**kwargs : any, 默认 None

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

返回:

SeriesDataFrame

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

例子,

1)基本用法

import pandas as pd
import numpy as np

# 创建一个示例DataFrame
data = {
    'A': [True, True, False],
    'B': [True, True, True],
    'C': [True, np.nan, True]
}
df = pd.DataFrame(data)

# 检查每列是否所有元素都为 True
print(df.all())

2)沿行方向操作

import pandas as pd
import numpy as np

# 创建一个示例DataFrame
data = {
    'A': [True, True, False],
    'B': [True, True, True],
    'C': [True, np.nan, True]
}
df = pd.DataFrame(data)

# 检查每行是否所有元素都为 True
print(df.all(axis=1))

3)包含NaN值

import pandas as pd
import numpy as np

# 创建一个示例DataFrame
data = {
    'A': [True, True, False],
    'B': [True, True, True],
    'C': [True, np.nan, True]
}
df = pd.DataFrame(data)

# 检查时不跳过NaN值
print(df.all(skipna=False))

4)只考虑布尔值列

import pandas as pd
import numpy as np

# 创建一个包含非布尔值的DataFrame
data = {
    'A': [True, True, False],
    'B': [True, True, 1],
    'C': [True, np.nan, 'Yes']
}
df = pd.DataFrame(data)

# 只考虑布尔值列
print(df.all(bool_only=True))

5)Series 使用示例

import pandas as pd
import numpy as np

# 示例1:Series中所有元素都为True
s1 = pd.Series([True, True])
print("Series s1 all:", s1.all())
# 输出: True

# 示例2:Series中有一个元素为False
s2 = pd.Series([True, False])
print("Series s2 all:", s2.all())
# 输出: False

# 示例3:空的Series
s3 = pd.Series([], dtype=bool)
print("Series s3 all:", s3.all())
# 输出: True

# 示例4:Series中包含NaN值
s4 = pd.Series([np.nan])
print("Series s4 all:", s4.all())
# 输出: True

# 示例5:Series中包含NaN值,不跳过NaN值
s5 = pd.Series([np.nan])
print("Series s5 all (skipna=False):", s5.all(skipna=False))
# 输出: True

6)DataFrame 使用示例

import pandas as pd

# 从字典中创建一个DataFrame
df = pd.DataFrame({'col1': [True, True], 'col2': [True, False]})
print("DataFrame df:")
print(df)
# 输出:
#    col1   col2
# 0  True   True
# 1  True  False

# 默认行为检查每列的值是否都为True
print("\nDataFrame df all (default):")
print(df.all())
# 输出:
# col1     True
# col2    False
# dtype: bool

# 指定axis='columns',检查每行的值是否都为True
print("\nDataFrame df all (axis='columns'):")
print(df.all(axis='columns'))
# 输出:
# 0     True
# 1    False
# dtype: bool

# 检查整个DataFrame的所有值是否都为True
print("\nDataFrame df all (axis=None):")
print(df.all(axis=None))
# 输出: False

推荐阅读
cjavapy编程之路首页