感想
今天总结下缺失数据处理心得。在拿到数据、拼接数据、汇总数据时,一定要使用df.isna().sum()或df.isna().mean()观察是否存在缺失数据,后一个方法还可以检测出缺失数据占比。(我今天在使用groupby汇总数据时,忘记查看缺失数据,导致结果不全,白白浪费1个小时时间)
因时间关系,我就简单讲解下常用处理缺失数据思路。
1、pandas自带缺失值处理方法fillna(),在 fillna 中有四个参数是常用的: value, method, limit,inplace 。其中, value 为填充值,可以是标量,也可以是索引到元素的字典映射; method 为填充方法,有用前面的元素填充 ffill 和用后面的元素填充 bfill 两种类型; limit 参数表示连续缺失值的最大填充次数;inplace 参数表示是否在原DataFrame上修改,默认是False。
当所有字段用同一个值填充时,df.fillna(0,inplace=True);
当多个字段分别用不同值填充时,df.fillna({‘字段1’:0,’'字段2":‘a’…},inplace=True)
2、插值函数填充,使用 interpolate函数,很多插值方法涉及到比较复杂的数学知识,大部分是使用建模思想填充缺失数据。实际业务中,插值填充需谨慎操作,需选择可解释的模型进行填充,否则填充后的数据难以得到其他业务人员的认可。
参考资料:https://datawhalechina.github.io/joyful-pandas/build/html/%E7%9B%AE%E5%BD%95/ch7.html