计算Pandas数据框架中的NaN或缺失值

  • Post category:Python

当处理数据时,经常会遇到缺失值。在Pandas中,缺失值通常表示为NaN(Not a Number)。

计算Pandas数据框架中的NaN或缺失值的完整攻略如下:

  1. 创建一个包含NaN值的数据框架

我们可以通过以下方式创建一个包含NaN值的数据框架:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 30, np.nan, 40],
    'gender': ['F', 'M', 'M', np.nan]
})

print(df)

输出结果如下:

       name   age gender
0     Alice  25.0      F
1       Bob  30.0      M
2   Charlie   NaN      M
3     David  40.0    NaN

我们可以看到,数据框架中有三列,其中agegender列中分别包含NaN值。

  1. 检查数据框架中的缺失值

我们可以使用Pandas的isnull()函数查看数据框架中的缺失值,它将返回一个布尔类型的数据框架,其中为NaN值的项对应的值为True。

print(df.isnull())

输出结果如下:

    name    age  gender
0  False  False   False
1  False  False   False
2  False   True   False
3  False  False    True

我们可以看到,数据框架中的缺失值在布尔类型的数据框架中被表示为True。

  1. 计算每列中的缺失值数量

我们可以使用isnull()函数计算每列中的缺失值数量。

print(df.isnull().sum())

输出结果如下:

name      0
age       1
gender    1
dtype: int64

我们可以看到,agegender列分别包含1个缺失值。

  1. 使用fillna()函数填充缺失值

我们可以使用fillna()函数将缺失值替换为指定的值。例如,我们可以将age列中的缺失值替换为平均值。

mean_age = df['age'].mean()
df['age'] = df['age'].fillna(mean_age)

print(df)

输出结果如下:

       name   age gender
0     Alice  25.0      F
1       Bob  30.0      M
2   Charlie  31.666667      M
3     David  40.0    NaN

我们可以看到,age列中的缺失值已被替换为平均值31.67。

  1. 使用dropna()函数删除缺失值

我们可以使用dropna()函数从数据框架中删除包含缺失值的行或列。例如,我们可以删除包含缺失值的行:

df = df.dropna()

print(df)

输出结果如下:

    name   age gender
0  Alice  25.0      F
1    Bob  30.0      M

我们可以看到,包含缺失值的行已被删除。

  1. 总结

这里我们了解了如何计算Pandas数据框架中的缺失值。通过使用isnull()函数检查缺失值、使用fillna()函数填充缺失值、使用dropna()函数删除缺失值等操作,我们可以处理包含缺失值的数据,使其更适合进行分析和建模。