我常用的数据清洗的一些方法,这也是为了更快的处理数据。
归一化数据
主要是将数据进行标准化,弄成相同量和相对大小的数据集,写脚本解决。因为很多时候,数据集会存在不同大小或者不同结构。
删除重复项
为什么要做这个事情主要是因为人为错误、数据输入错误或者数据源不一致造成,可以删除所有重复的,也可以只保留首行、最后一行,也可以写一些方法确认哪些需要保留的。
处理异常值
识别和处理数据集中与数据很明显不同的极端值的过程。异常值会对数据分析造成很大的影响。
异常值的处理方法:
剔除:删除异常值
替换:可以使用更接近其他数据点的指定值进行替换。
归纳:比如平均值、中位数、众数、回归等等。
集成数据
将多个来源组合到一个统一视图里面。主要是协调数据之间的差异。这一步可以在数据直接写 sql 语法进行第一步统一。
但是多个数据源的数据可能会存在一些问题,所以很多时候需要将数据先进行转化在进一步集成。
简化数据
主要对数据进行简化或汇总,以减少数据的大小或复杂性,使其更易于管理、分析和可视化的过程。
常用的就是去除一部分无意义的数据。
处理缺失值
这里在处理数据的时候处理缺失值,主要有几个方法:
删除:直接将缺失值直接删除
归纳:用统计数据填充缺失值,比如平均值、中位数、众数、回归等等
插值:根据同类型样本评估缺失值,在填充进去
外推:根据趋势预测补充缺失值,这一步一般都是通过人为经验来补充的。
这一步在系统侧添加了第一层数据,在前期的数据异常处理功能上已经设计,通过功能可以做第一步系统数据清洗,可以避免大批量的操作。设备异常数数据分析 | shmaur,这里是处理思路。
转化格式和类型
这个主要是将数据格式转换成另一种格式或数据类型的过程,比如将字符串转换为数字。我主要会写一些自动化处理脚本处理数据,在进一步对数据进行校验。
还有一些检查点
数据单位是否一致
拼写是否一致
标签是否一致
空间参考数据是否一致
时间参考数据是否一致
精度是否一致
数据频率是否一致
数据值是否有效等等
案例
对异常数据集清洗
通过协调开发提供异常数据集,得到表格
在数据不全的情况下,可通过编写脚本从平台重新取数据并完善完善就会得到以下数据
这里面需要剔除没有必要的字段,保留自己需要的字段,归一化数据,将数据只保留属性名称、设备名称、异常数、描述;同时新增一个《标签》字段。
统计不同设备发生的次数,因为有些重复数据需要进行剔除,剔除条件为:当天内连续重复数据保留末行的数据,在进行排名,得到的排名就可以针对异常数进行打标签操作。