当处理数据时,经常会遇到缺失值。在Pandas中,缺失值通常表示为NaN(Not a Number)。
计算Pandas数据框架中的NaN或缺失值的完整攻略如下:
- 创建一个包含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
我们可以看到,数据框架中有三列,其中age
和gender
列中分别包含NaN值。
- 检查数据框架中的缺失值
我们可以使用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。
- 计算每列中的缺失值数量
我们可以使用isnull()
函数计算每列中的缺失值数量。
print(df.isnull().sum())
输出结果如下:
name 0
age 1
gender 1
dtype: int64
我们可以看到,age
和gender
列分别包含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。
- 使用dropna()函数删除缺失值
我们可以使用dropna()
函数从数据框架中删除包含缺失值的行或列。例如,我们可以删除包含缺失值的行:
df = df.dropna()
print(df)
输出结果如下:
name age gender
0 Alice 25.0 F
1 Bob 30.0 M
我们可以看到,包含缺失值的行已被删除。
- 总结
这里我们了解了如何计算Pandas数据框架中的缺失值。通过使用isnull()
函数检查缺失值、使用fillna()
函数填充缺失值、使用dropna()
函数删除缺失值等操作,我们可以处理包含缺失值的数据,使其更适合进行分析和建模。