获取缺失值的标记方式(NaN或者其他标记方式)
如果缺失值的标记方式是NaN
判断数据中是否包含NaN:
pd.isnull(df),pd.notnull(df)存在缺失值nan:
1、删除存在缺失值的:dropna(axis=‘rows’) 注:不会修改原数据,需要接受返回值 2、替换缺失值:fillna(value, inplace=True) value:替换成的值inplace:True:会修改原数据,False:不替换修改原数据,生成新 的对象如果缺失值没有使用NaN标记,比如使用"?"
先替换‘?’为np.nan,然后继续处理删除 pandas删除缺失值,使用dropna的前提是,缺失值的类型必须是np.nan。
注:dropna删除缺失值数据方法是删除存在NAN的整行数据。
# 不修改原数据 movie_data.dropna() # 可以定义新的变量接受或者用原来的变量名 data = movie_data.dropna() 替换缺失值 movie_data[i].fillna(value=movie_data[i].mean(), inplace=True)完整代码:
# 对数据中每一列进行判断,只要存在NAN,就用这列数据的平均值替换NAN for i in movie_data.columns: if np.any(pd.isnull(movie_data[i])) == True: movie_data[i].fillna(value = movie_data[i].mean(), inplace = True) movie_data比如缺失值是?或者/等符号,那么该如何处理呢?处理思路分析:
1、先替换,将其他默认标记符号替换为np.nan
df.replace(to_replace=, value=) to_replace:替换前的值value:替换后的值 # 把一些其它值标记的缺失值,替换成np.nan wis = wis.replace(to_replace='?', value=np.nan) 2、在进行缺失值的处理,删除或者替换操作 # 删除 wis = wis.dropna()注:NAN类型实际是float浮点型。
type(np.NAN) float创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
Dragon少年 | 文
如果本篇博客有任何错误,请批评指教,不胜感激 !
