数据预处理
缺失值处理
对于缺失值一般有两种处理方式,一是直接把含有缺失值的数据删除,二是把缺失值的数据用某个值代替
缺失值查看
df
>>>
编号 年龄 性别 注册时间
0 A1 54.0 NaN 2018-08-08
1 A2 NaN 女 2018-08-09
2 A3 47.0 女 NaT
3 A4 41.0 男 2018-08-11
# info判断数据的缺失情况
df.info()
>>>
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 4 columns):
编号 4 non-null object
年龄 3 non-null float64
性别 3 non-null object
注册时间 3 non-null datetime64[ns]
dtypes: datetime64[ns](1), float64(1), object(2)
memory usage: 208.0+ bytes
# isnull判断哪个值是缺失值,缺失值返回True,非缺失值返回False
df.isnull()
>>>
编号 年龄 性别 注册时间
0 False False True False
1 False True False False
2 False False False True
3 False False False False
缺失值删除
dropna()默认删除含有缺失值的整行
df.dropna()
>>>
编号 年龄 性别 注册时间
3 A4 41.0 男 2018-08-11
只删除全为空值的行,只要给dropna()传入一个参数 how = all
df
>>>
编号 年龄 性别 注册时间
0 A1 54.0 男 2018-08-08
1 NaN NaN NaN NaT
2 A3 47.0 女 NaT
3 A4 41.0 男 2018-08-11
df.dropna(how = 'all')
>>>
编号 年龄 性别 注册时间
0 A1 54.0 男 2018-08-08
2 A3 47.0 女 NaT
3 A4 41.0 男 2018-08-11
缺失值填充
缺失值一般用0填充、平均值填充、众数填充,还有向前填充(即缺失值的前一个非缺失值填充)、向后填充
df.fillna(0) #用0填充
>>>
编号 年龄 性别 注册时间
0 A1 54.0 男 201