处理数据丢失问题
两种丢失数据:
- None
- np.nan(NaN)
import numpy as np
type(None) ----->NoneType
type(np.nan) ----->float
1.None
None 是Python自带的,其类型python object.因此,None不能参与任何计算中.
object类型的运算要比int类型的运算慢的多
计算不同数据类型求和时间
%timeit np.arange(1e5,dtype=xxx).sum()
2. np.nan
np.nan是浮点类型,能参与到计算中.但计算的结构总是NaN
但可以使用np.nan*()函数来计算nan,此时nan视为0.
np.nanstd(nd)#标准差
np.nanvar()#方差
3. Pandas中的None与NaN
1)pandas中None与np.nan都视作np.nan
2)pands中None与np.nan操作
1)判断函数
- isnull()
- notnull()
any()与all()的区别:axis=0,axis=1.
any()一个是Ture全为Ture
all()一个为False全为Fales
2)过滤函数
- dropna()
可以选择过滤的是行还是列(默认为行)
可以选择过滤的方式how="all"
dropna(axis=0,how="")按照指定规则把有男的数据丢弃
axis=0,how="any"默认,只要有一个是nan就丢弃,
axis=0,how="all"只有全部为nan的时候才丢弃,
3)填充函数 Series/DataFrame
-fillna()
df.fillna(method="",axis=) #默认axis=0
method="bfill" #axis=0 纵向向前, axis=1横向向前上
method="ffill" )# axis=0 纵向向后, axis=1横向后下
对于DataFrame表单来说,还要选择填充的轴axis,记住
axis=0 : index/行
axis=1: columms/列