Pandas中NaN缺失值处理

    技术2022-07-10  127

    文章目录

    一、如何处理nan二、电影数据的缺失值处理2.1 判断缺失值是否存在2.2 存在缺失值nan,并且是np.nan2.3 不是缺失值nan,有默认标记的 三、小结

    一、如何处理nan

    二、电影数据的缺失值处理

    电影数据的缺失值处理 # 读取电影数据 movie = pd.read_csv("./data/IMDB-Movie-Data.csv")

    2.1 判断缺失值是否存在

    pd.notnull() pd.notnull(movie) Rank Title Genre Description Director Actors Year Runtime (Minutes) Rating Votes Revenue (Millions) Metascore 0 True True True True True True True True True True True True 1 True True True True True True True True True True True True 2 True True True True True True True True True True True True 3 True True True True True True True True True True True True 4 True True True True True True True True True True True True 5 True True True True True True True True True True True True 6 True True True True True True True True True True True True 7 True True True True True True True True True True False True np.all(pd.notnull(movie))

    2.2 存在缺失值nan,并且是np.nan

    1、删除

    pandas删除缺失值,使用dropna的前提是,缺失值的类型必须是np.nan

    # 不修改原数据 movie.dropna() # 可以定义新的变量接受或者用原来的变量名 data = movie.dropna() 2、均值替换缺失值 # 替换存在缺失值的样本的两列 # 替换填充平均值,中位数 movie['Revenue (Millions)'].fillna(movie['Revenue (Millions)'].mean(), inplace=True) 3、指定值替换 fill_dict={ 'Revenue (Millions)':-100,#Revenue (Millions)列用-100填充 'Metascore':-10#Metascore列用-10填充 } movie=movie.fillna(fill_dict)

    2.3 不是缺失值nan,有默认标记的

    数据是这样的: 处理思路分析:

    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()

    三、小结

    isnull、notnull判断是否存在缺失值【知道】 np.any(pd.isnull(movie)) # 里面如果有一个缺失值,就返回Truenp.all(pd.notnull(movie)) # 里面如果有一个缺失值,就返回False dropna删除np.nan标记的缺失值【知道】 movie.dropna() fillna填充缺失值【知道】 movie[i].fillna(value=movie[i].mean(), inplace=True) replace替换具体某些值【知道】 wis.replace(to_replace="?", value=np.NaN)
    Processed: 0.011, SQL: 9