本文介绍pandas中重建索引与处理缺失值
文章目录
一.重建索引
reindex()是pandas对象的重要方法,调用reindx()方法时,会将数据按照新的索引进行排列,如果某个索引值之前并不存在,则会引入缺失值。如果新索引与原来的的索引没有交集,那么新建立的df的全部值为缺失值。
1.1series重建索引
- 在重建索引时,可能会需要插值或者填值,method可选参数可以实现这个功能
reindex()函数可以指定method参数,method的取值为:
menthod = ffill:向前填充,也就是自上向下填充
method = bfill:向后填充,也就是自下向上填充
1.2.dataframe重建索引并修改缺失值
在df中,reindex()可以改变行索引,列索引,或者同时改变二者。当仅传入一个序列作为参数时,默认改变行索引。
- 改变行索引
-
使用columns改变列索引
因为默认改变行索引,所以改变列索引需要制定columns关键字
-
同时改变行,列索引
-
使用fill_value参数修改缺失值
fill_value参数会将重建索引时产生的所有缺失值赋予一个新值
二.处理缺失值
对缺失值的处理有两种方法:
- 使用dropna()函数丢掉含有缺失值的行或者列
- 使用fillna()函数对缺失值赋值
2.1丢掉含有缺失值的行或者列
dropna()有2个参数:
axis: 0表示丢掉行 ; 1表示丢掉列
how: any表示只有含有缺失值就丢掉; all表示一行或者一列的值全为nan时,才丢掉
插入2个nan值:
-
丢掉行
-
丢掉列
因为没有一行或者一列的值全为nan,所以执行df.dropna(axis=0, how=‘all’)时,不变
2.2.填充缺失值
- 使用fillna(value=)填充值
2.3判断df中每个元素是否为缺失值,返回一个bool值df
- 使用isnull()函数判断
2.4.判断df中是否含有nan值,有则返回true,没有则返回false
- 使用np.any(df.isnull==true)判断