让我们来探讨一下如何在 Pandas DataFrame 中计算 NaN 值的数量。在 Pandas 中,NaN(非数字)值代表了 DataFrame 中的缺失数据。
计算 Pandas DataFrame 中每一列的 NaN 值
要找出每一列中缺失(NaN)值的数量,我们可以使用 INLINECODE36cb91bd 函数配合 INLINECODE7fade511 函数。这将为我们提供每列中 NaN 值的计数。
Python
import pandas as pd
import numpy as np
# 示例数据集
data = {
‘A‘: [1, 2, np.nan, 4],
‘B‘: [np.nan, 2, np.nan, 3],
‘C‘: [1, np.nan, np.nan, np.nan]
}
df = pd.DataFrame(data)
# 计算每一列的 NaN 数量
column_nan_count = df.isnull().sum()
print("每列的 NaN 计数:")
print(column_nan_count)
INLINECODEb6622860locINLINECODEd11061c9ilocINLINECODE77fbf53aisnull().sum()INLINECODE10166eb6
输出:
****第一行的 NaN 计数:**** 1
计算整个 DataFrame 中的 NaN 值
要获取整个 DataFrame 中 NaN 值的总计数,我们可以使用 isnull().sum().sum()。这会先计算每列的 NaN 总数,然后将这些总数相加以获得整体计数。
Python
# 计算 DataFrame 中的总 NaN 数量
total_nan_count = df.isnull().sum().sum()
print("总 NaN 计数:", total_nan_count)
INLINECODE093d5fcbisna()INLINECODE5175f828isna()INLINECODE1a7cdbb8isnull()INLINECODE77b9b802
输出:
****使用 isna() 的每列 NaN 计数:****
A 1
B 2
C 3
dtype: int64
使用 describe() 查找每列中的非 NaN 值
describe() 方法提供了每列的快速概览,包括非 NaN 的计数。从总行数中减去这个计数就可以得出 NaN 的数量。
Python
# 使用 describe() 获取额外见解
non_nan_count = df.describe().loc[‘count‘]
nan_count_using_describe = len(df) - non_nan_count
print("使用 describe() 的每列 NaN 计数:")
print(nan_count_using_describe)
INLINECODE2857df6eisna().any()INLINECODE1719e9d3
输出:
****包含 NaN 值的列:****
A True
B True
C True
dtype: bool
2. 检查是否有任何 NaN 值的行
要检查哪些行包含 NaN 值,可以使用 isna().any(axis=1),它会沿着行轴进行检查。
Python
rows_with_nan = df.isna().any(axis=1)
print("包含 NaN 值的行")
print(rows_with_nan)
`
输出:
包含 NaN 值的行
0 True
1 True
2 True
3 True
dtype: bool
了解如何计算和定位数据中的 NaN 对于数据清洗和预处理至关重要。