一、缺失值处理
1、如何处理nan
两种思路:
(1)如果样本量很大,可以删除含有缺失值的样本
(2)如果要珍惜每一个样本,可以替换/插补(计算平均值或中位数)
2、判断数据是否为nan
(1)pd.isnull(df)
返回一堆布尔值,False不是缺失值,True是缺失值
(2)pd.notnull(df)
返回一堆布尔值,True不是缺失值,False是缺失值
3、缺失值处理方式
存在缺失值nan,并且是np.nan
(1)dropna(axis='rows', inplace=False)
删除存在缺失值
默认不替换原数据,返回新数据,inplace=True修改原数据
(2)fillna(value, inplace=True)
替换缺失值
说明:
value:替换成的值
inplace:
True:会修改原数据
False:不替换修改原数据,生成新的对象
(3)缺失值不是nan,是其他标记的
后面再说
二、缺失值处理实例
1、电影数据文件获取
python
import pandas as pd
movie = pd.read_csv("./IMDB-Movie-Data.csv")
movie
import numpy as np
# 判断是否存在缺失值
np.any(pd.isnull(movie))
np.all(pd.notnull(movie))
# 用dataframe的any方法
pd.isnull(movie).any() # 返回每一个字段是否有缺失值
# 用dataframe的all方法
pd.notnull(movie).all()
# 用dataframe的isnull方法
movie.isnull().sum()

2、删除含有缺失值的样本
python
# 缺失值处理
# 删除含有缺失值的样本
data1 = movie.dropna()
data1.isnull().sum()
