📌  相关文章
📜  如何计算 Pandas 数据框中列中的 NaN 出现次数?(1)

📅  最后修改于: 2023-12-03 15:38:54.301000             🧑  作者: Mango

如何计算 Pandas 数据框中列中的 NaN 出现次数?

在 Pandas 中,NaN 表示缺失值,经常会在数据框中出现。计算 Pandas 数据框中每一列中 NaN 出现的次数是一个相对简单的任务。下面我们介绍一些实现方法。

方法一:使用 Pandas 的 isna() 方法

可以使用 Pandas 的 isna() 方法计算每一列的 NaN 值的个数,然后用 sum() 方法加总即可。示例代码如下:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({'A': [1, 2, None], 'B': [1, None, None], 'C': [1, 2, 3]})

# 计算每一列中 NaN 的个数
nan_count = df.isna().sum()

print(nan_count)

输出结果为:

A    1
B    2
C    0
dtype: int64

其中,isna() 方法返回一个布尔值的数据框,表示每一个元素是否为 NaN;sum() 方法计算每一列中 True 的个数,即 NaN 的出现次数。

方法二:使用 Pandas 的 isnull() 方法

isnull() 方法与 isna() 方法作用相同,都可以判断每一个元素是否为 NaN。不同之处在于在某些情况下,isnull() 方法的效果更佳。示例代码如下:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({'A': [1, 2, None], 'B': [1, None, None], 'C': [1, 2, 3]})

# 计算每一列中 NaN 的个数
nan_count = df.isnull().sum()

print(nan_count)

输出结果为:

A    1
B    2
C    0
dtype: int64
方法三:使用 Pandas 的 isna() 方法和 apply() 方法

使用 apply() 方法和 isna() 方法也可以实现计算每一列中 NaN 的个数。示例代码如下:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({'A': [1, 2, None], 'B': [1, None, None], 'C': [1, 2, 3]})

# 定义一个函数,计算每一列中 NaN 的个数
def count_nan(col):
    return col.isna().sum()

# 使用 apply() 方法计算每一列中 NaN 的个数
nan_count = df.apply(count_nan)

print(nan_count)

输出结果为:

A    1
B    2
C    0
dtype: int64

方法三虽然代码量多一些,但在某些情况下可以提供更多的灵活性,因为可以在函数中做更多的处理。

三种方法均是实现计算每一列中 NaN 的个数的可行方案。在实际操作中,可根据具体情况选择最优方案。