缺失值判断
缺失值在Python里的表现一般有4种
1、None
2、False
3、‘’
4、nan
前3个很容易判断,直接用 ==
就可以了,但第4种无法直接用 ==
进行判断,会出现这种情况
NaN(not a number),在数学表示上表示一个无法表示的数,这里一般还会有另一个表述inf,inf和nan的不同在于,inf是一个超过浮点表示范围的浮点数(其本质仍然是一个数,只是他无穷大,因此无法用浮点数表示,比如1/0),而nan则一般表示一个非浮点数(比如无理数)
在数学上inf==inf,且inf == inf+X(X为任意浮点数),而nan != nan,因此在python中判断一个数是否是nan,可以直接判断他是否与自身相等。
对于这种情况我们可以用 np.isnan()
函数进行判断
缺失值填充
了解了怎么判断缺失值后就可以对他们进行填充了,这里介绍一下在一个DataFrame里如何对每列数值使用均值进行填充
数据:
Python实现
def fillna_mean(df):
for cols in list(df.columns[df.isnull().sum() > 0]):
mean_val = df[cols].mean() # 这里可以更改需要的公式
df[cols].fillna(mean_val, inplace=True)
return df
fillna_mean(df)