#pandas处理丢失数据## 标题
######Pandas将None和NaN视为可交换的,它们都可以用来指示丢失的数据。
1.None可以代替丢失值(哨兵值)并不适合所有情况,只能用于数组的类型为对象的情况。 None会导致一些聚合操作,比如sum()和min()会报错。
2.NaN 代替丢失值(另外一中哨兵值)一种特殊的浮点型数据,不管什么操作,只要有NaN,结果都为NaN(聚合操作能进行,但结果都是NaN)
3.Numpy提供了一些函数用于聚合运算,可以忽略掉丢失的数据: np.nansum(数组) np.nanmin(数组) np.nanmax(数组)
######Pandas中的None和NaN
1.None和NaN在Pandas有其独特的地位,Pandas同时支持它们,并可以相互转换。
######针对Null值的操作
1.数组.isnull():用于创建掩码数组
2.数组.notnull():isnull()的反操作
3.数组.dropna(): 返回过滤后的数据
4.数组.fillna(): 返回填充后的数据
######检测null值
1.数组.isnull()可用于检查null值,返回一个布尔值数组 True为NaN False为有数据
1.一维数组支持索引(二维数组不支持)
2.数组.notnull()函数跟isnull()函数相反,可用于检查null值,返回一个布尔值数组:False返回NaN True返回有数据
1.支持一维数组索引(不支持二维数组)同时会自动排除空值
######删除null值
1.数组.dropna()来删除NA值(删除空值)(默认删行)
1.在DataFrame中无法删除单个的值,只能删除(有NaN)整行或者整列数据。
1.如果axis为columns,则删除出现NA的列
1.如果axis为rows,则删除出现NA的行
1.更精细的可以通过参数how和thresh来控制
1.how的默认值为any(定义的列), 也就是说任意行或者列只要出现NA值就删除
1.how如果改为all(全部),则只有所有行或列值都为NA的时候才会删除。
2.以通过thresh来指定最少保留多少个**非**NA值。
######填充null值
1.数组.fillna()方法,把NaN填充成其他的值(或指定的值)。
1..数组.fillna(method = ‘ffill’)还可以有一个参数,用前一个值来填充。可以指定填充的轴(axis = 0/1)(默认是列)
2.数组.fillna(method = ‘bfill’)还可以有一个参数,用后一个值来填充。可以指定填充的轴(axis = 0/1)