DataFrame.notnull() 函数简介
Pandas 中的 DataFrame.notnull() 函数用于检测 DataFrame 中的非缺失值(即非 NaN 或 None 的值)。它会返回一个与原 DataFrame 形状相同的 DataFrame,其中包含布尔值,用于指示每个元素是否不为空。
让我们先看一个简单的例子:
import pandas as pd
import numpy as np
df = pd.DataFrame({
‘A‘: [1, np.nan, 3],
‘B‘: [‘x‘, ‘y‘, None]
})
print(df.notnull())
Output
A B
0 True True
1 False True
2 True False
解释: 返回的 DataFrame 与原 DataFrame 形状相同,其中 True 表示该值不是 null(即有效值),False 表示该值为 NaN 或 None。
语法
> DataFrame.notnull()
参数: 此方法不接受任何参数。
返回值: 一个布尔类型的 DataFrame,其中值为非空的位置显示 True,值为 NaN 或 None 的位置显示 False。
示例
示例 1: 在这个例子中,我们来检查 DataFrame 中哪些值不是缺失值。
import pandas as pd
import numpy as np
df = pd.DataFrame({‘A‘: [1, np.nan, 3], ‘B‘: [‘a‘, ‘b‘, None]})
print(df.notnull())
Output
A B
0 True True
1 False True
2 True False
解释: 这会返回一个 DataFrame,其中非空值对应的位置为 True,而 NaN 或 None 对应的位置为 False。
示例 2: 使用布尔索引过滤列 ‘A‘ 不为空的行。
import pandas as pd
import numpy as np
df = pd.DataFrame({‘A‘: [1, np.nan, 3], ‘B‘: [‘a‘, ‘b‘, None]})
print(df[df[‘A‘].notnull()])
Output
A B
0 1.0 a
2 3.0 None
解释: 只有列 ‘A‘ 不为空的行会被返回。列 ‘A‘ 中包含 NaN 的行被排除了。
示例 3: 将 INLINECODE332544e4 与 INLINECODE10d060ca 的反函数进行比较,以验证它们在逻辑上是相反的。
import pandas as pd
import numpy as np
df = pd.DataFrame({‘A‘: [1, np.nan, 3], ‘B‘: [‘a‘, ‘b‘, None]})
print(df.notnull() == ~df.isnull())
Output
A B
0 True True
1 True True
2 True True
解释: INLINECODE0674bcce 返回的结果与 INLINECODE2217eefa 相反,通过比较运算返回的全为 True 证实了这一点。
示例 4: 在这个例子中,我们使用 all() 方法检查每一列的所有值是否都非空。
import pandas as pd
import numpy as np
df = pd.DataFrame({‘A‘: [1, np.nan, 3], ‘B‘: [‘a‘, ‘b‘, None]})
print(df.notnull().all())
Output
A False
B False
dtype: bool
解释: 返回 False 表示这些列中并非所有值都是非空的,两列都至少包含一个缺失值。
示例 5: 在这个例子中,我们使用 any(axis=1) 检查每一行中是否至少包含一个非空值。
import pandas as pd
import numpy as np
df = pd.DataFrame({‘A‘: [1, np.nan, 3], ‘B‘: [‘a‘, ‘b‘, None]})
print(df.notnull().any(axis=1))
Output
0 True
1 True
2 True
dtype: bool
解释: 返回 True 表示每一行都至少包含一个非空值,即使行中的某些值是缺失的。
> 相关文章:
>
> – Pandas
> – NumPy