数据清洗-总结

简单归纳,数据清洗就分为四步:

拆 -> 丢 -> 填 -> 格式化

1、所谓拆,就是将信息成分复杂的字段进行拆分,如数据形如"3室2卫", 其杂糅了两个数字信息,可以拆分成两个单独的字段,使用uint8进行存储,即减少了存储占用,又能方便数据分析。

拆为什么要先于"丢"和"填", 这并不是绝对的。但是,通常情况下,哪怕待拆分的列有缺失值或异常值,也是可以通过正则正常拆分的。拆分后有新的列产生,此时很自然需要单独的"丢"或"填"处理。

2、丢,主要针对四种类型:

①重复值(DataFrame.drop_duplicate(inplace=True))

②不研究的列(这需要我们开始就明确自己的研究目的), 比如我们拿到一份公司招聘数据,字段中还含有HR的名字和联系电话,这些数据正常只有我们真的想去找公司才需要,如果只是做数据分析直接舍去就好,能显著减少数据加载时间和内存占用,何乐而不为呢?

③缺失值过多或全是缺失值的列

比如一个列,里面8个字段有超过4个字段都有缺失值,此时其信息丢失实在太严重了,花费大力气去填补还不如直接舍去。还有些时候如一个csv文件你会看到n个连续",": ,,,,,,,

这种情况就是整行数据全为空了,自然也是直接舍弃掉,简单一句:

df.dropna(how="all", inplace=True)就搞定了,基本就是固定写法。

④异常值列(占比少时)

如果异常值占比少,丢掉几个异常值对整体分析结果影响就不大了。此时与其花功夫研究怎么填补他们,直接舍弃掉来得更加轻松,毕竟数据分析最终的目的是要得出一个有效结论的,不影响结论的数据怎么处理都行哈! 当然我们也要有意识的看看这些异常值是什么导致的,有时少部分的异常值可能暗含某种重要信息呢!

3、填

填充可谓大有学问,最简单的"众数, 中位数, 平均数"填补法仅仅是尽可能减少了异常值对整体分析结果的影响,但并不见得是最佳策略。有能力的尝试使用一些更高级的数学方法或机器学习啥的来填充,这样出来的分析结果就更加精确了。

4、格式化字段

所谓格式化就是统一了。如有的数据用中文数字"十", 有的用阿拉伯数字10,这种不统一的情况当然不能容忍,需要统一。特别的,格式化不一定放到最后,像一些数值型的异常值检查时我们可能就需要先格式化。

上述步骤总体并不是严格固定的,但基本可以遵循此顺序。统一过程无疑是最高效的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值