学习目标
- 说明Pandas的缺失值类型
- 应用replace实现数据的替换
- 应用dropna实现缺失值的删除
- 应用fillna实现缺失值的填充
- 应用isnull判断是否有缺失数据NaN
- 应用:对电影数据进行缺失值处理
1 电影数据文件获取
# 读取电影数据
movie = pd.read_csv("./data.csv")
2 缺失值的处理逻辑
对于NaN的数据,在pandas中我们处理起来非常容易
- 判断数据是否为NaN:pd.isnull(df),pd.notnull(df)
处理方式:
- 存在缺失值nan,并且是np.nan:
- 1、删除存在缺失值的:dropna(axis='rows')
- 2、替换缺失值:fillna(df[].mean(), inplace=True)
- 不是缺失值nan,有默认标记的
3 存在缺失值nan,并且是np.nan
- 删除
# pandas删除缺失值,使用dropna的前提是,缺失值的类型必须是np.nan
movie.dropna()
- 替换缺失值
# 替换存在缺失值的样本
# 替换? 填充平均值,中位数
movie['Revenue (Millions)'].fillna(movie['Revenue (Millions)'].mean(), inplace=True)
movie['Metascore'].fillna(movie['Metascore'].mean(), inplace=True)
4 不是缺失值nan,有默认标记的
数据是这样的:
wis = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data")
处理思路分析:
-
先替换‘?’为np.nan
df.replace(to_replace=, value=)
-
在进行缺失值的处理
# 把一些其它值标记的缺失值,替换成np.nan
wis = wis.replace(to_replace='?', value=np.nan)
wis.dropna()