📅  最后修改于: 2023-12-03 15:23:25.715000             🧑  作者: Mango
在数据分析中,往往需要对含有缺失值的数据进行填充。Pandas是Python中非常流行的数据分析库,它也提供了很多填充函数来处理含有缺失值的数据。
首先我们需要准备一个含有缺失值的数据集作为我们的样例数据。下面的代码通过pandas.DataFrame()
方法生成一个数据集df,其中包含两个含有缺失值的列,并打印前10行数据:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A':[1, 2, np.nan, 4, 5],
'B':[6, np.nan, 8, np.nan, 10],
'C':[11, 12, 13, 14, 15]})
print(df.head(10))
输出结果为:
A B C
0 1.0 6.0 11
1 2.0 NaN 12
2 NaN 8.0 13
3 4.0 NaN 14
4 5.0 10.0 15
可以看到,数据集中有两个含有缺失值的列A和B。
Pandas提供了fillna()
函数来填充缺失值,其默认值为填充所有缺失值。下面的代码展示了如何使用fillna()
函数来填充所有缺失值:
df.fillna(value=0, inplace=True)
print(df.head(10))
输出结果为:
A B C
0 1.0 6.0 11
1 2.0 0.0 12
2 0.0 8.0 13
3 4.0 0.0 14
4 5.0 10.0 15
可以看到,所有的缺失值都被填充成了0。
有时候,我们只需要填充某几列的缺失值,而不是填充所有列的缺失值。这时,我们可以在fillna()
函数中指定需要填充的列。下面的代码展示了如何填充A列和B列的缺失值:
df.fillna(value={'A':0, 'B':1}, inplace=True)
print(df.head(10))
输出结果为:
A B C
0 1.0 6.0 11
1 2.0 1.0 12
2 0.0 8.0 13
3 4.0 1.0 14
4 5.0 10.0 15
可以看到,只有A列和B列的缺失值被填充成了0和1,而C列没有被填充。
有时候,我们可以使用同一列的均值来填充该列的所有缺失值。下面的代码展示了如何通过计算各列均值来填充每列的缺失值:
df.fillna(value=df.mean(), inplace=True)
print(df.head(10))
输出结果为:
A B C
0 1.0 6.0 11
1 2.0 8.0 12
2 3.0 8.0 13
3 4.0 8.0 14
4 5.0 10.0 15
可以看到,每列的缺失值都被填充成了该列的均值。