📅  最后修改于: 2023-12-03 15:38:54.301000             🧑  作者: Mango
在 Pandas 中,NaN 表示缺失值,经常会在数据框中出现。计算 Pandas 数据框中每一列中 NaN 出现的次数是一个相对简单的任务。下面我们介绍一些实现方法。
可以使用 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 的出现次数。
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
使用 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 的个数的可行方案。在实际操作中,可根据具体情况选择最优方案。