Pandas
主要有三类函数处理缺失值,对其分类可以分为检测、丢弃和填充。
isnull
和notnull
:检测是否是空值,可用于df
和series
。dropna
:丢弃、删除缺失值。这个函数有三个参数:- axis : 删除行还是列,{0 or ‘index’, 1 or ‘columns’}, default 0按行删除。
- how : 如果等于
any
则任何值为空都删除,如果等于all
则所有值都为空才删除。 - inplace : 如果为
True
则修改当前df
,否则返回新的df
。
fillna
:填充空值,有四个参数:- value:用于填充的值,可以是单个值,或者字典(
key
是列名,value
是值) - method : 等于
ffill
使用前一个不为空的值填充forword fill
;等于bfill
使用后一个不为空的值填充backword fill
。 - axis : 按行还是列填充,{0 or ‘index’, 1 or ‘columns’} default 0按行填充。
- inplace : 如果为
True
则修改当前df,否则返回新的df
- value:用于填充的值,可以是单个值,或者字典(
读取数据
参数skiprows=2
表示忽略读取前两行,从第三行开始读取:
可以看到数据中有很多空值nan
。
检测空值
- 检测所有行和列的空值(
isnull()
)情况:
- 检测某一列的空值(
isnull()
)和非空值(notnull()
)情况:
通过检测为空或者非空的结果(True or False)就可以对DataFrame
进行筛选:
删除空值
- 删除掉全是空的列,
axis="columns"
参数表示的就是按列删除:
- 删除掉全是空值的行:
填充空值
这里的填充空值提供3种方式:
- 采用字典的方法:
- 采用赋值的方法:
- 使用前面的有效值填充,用
ffill:forward fill
:
最后可以将其写入到excel
中去:
studf.to_excel("./aa.xlsx", index=False)
我的微信公众号名称:小小何先生
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!