Python Pandas – 用众数填充缺失的列值
在数据处理中,存在着各种各样的数据缺失情形,而缺失数据的填充也是数据预处理的重要环节之一。本文将介绍如何使用Pandas库的fillna函数,以众数填充缺失的列值。
更多Pandas相关文章,请阅读:Pandas 教程
数据准备
首先,我们需要准备一个具备缺失值的数据集。下面是一个简单的例子,其中“name”和“gender”列各有一行缺失值:
import pandas as pd
data = {'name': ['Tom', 'Jerry', 'Mickey', 'Minnie', 'Donald', 'Daisy', 'Goofy', 'Pluto', None, 'Clarabelle'],
'age': [25, 32, 20, 19, 27, 23, 28, 30, 29, 26],
'gender': ['male', 'male', 'female', 'female', 'male', 'female', 'male', 'male', None, 'female'],
'score': [80, 75, 90, 88, 95, 92, 85, 89, 87, 91]}
df = pd.DataFrame(data)
print(df)
输出结果:
name age gender score
0 Tom 25 male 80
1 Jerry 32 male 75
2 Mickey 20 female 90
3 Minnie 19 female 88
4 Donald 27 male 95
5 Daisy 23 female 92
6 Goofy 28 male 85
7 Pluto 30 male 89
8 None 29 None 87
9 Clarabelle 26 female 91
填充缺失值
接着,我们使用Pandas的fillna函数填充缺失的列值。我们需要先找到具有缺失值的列,并计算其众数。可以使用mode函数来计算列的众数。然后,我们将这个众数插入缺失值。
mode_value = df['gender'].mode()[0]
df['gender'] = df['gender'].fillna(mode_value)
print(df)
输出结果:
name age gender score
0 Tom 25 male 80
1 Jerry 32 male 75
2 Mickey 20 female 90
3 Minnie 19 female 88
4 Donald 27 male 95
5 Daisy 23 female 92
6 Goofy 28 male 85
7 Pluto 30 male 89
8 None 29 male 87
9 Clarabelle 26 female 91
在上面的代码中,我们首先在“gender”列中通过mode函数找到了众数,然后将其填充到缺失值位置。
小结
本文介绍了如何使用Pandas中的fillna函数以众数填充缺失的列值。该方法适用于具有缺失值的数据,可以有效地处理某些情况下的异常数据。在实际应用中,我们还需要结合不同的数据类型和场景,综合应用不同的填充方法,以获得更好的数据预处理效果。