以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

成都市日化批发市场,广州洗涤日化批发市场租金贵吗

  

  编辑指南:数据清理是指查找和纠正数据文件中可识别错误的最后一个程序,包括检查数据一致性、处理无效值和缺失值等。本文结合笔者自身工作经验,以大数据看板租用过程中的数据清理为例,与大家进行分析分享。   

  

     

  

  最近在接触学习BI(商务   

  

  情报、商业智能)相关内容,提取部分租赁业务数据导入BI软件进行分析。由于数据跨度大,均来自线下录入,前期字段约束较少,业务审核相关机制不完善,导致部分字段统计经常出错,或与理想情况差距过大。在这种情况下,应该引入“数据清洗”的过程来消除不正确的数据。   

  

     

  

  数据清理是指发现和纠正数据文件中可识别错误的最后一个过程,包括检查数据一致性、处理无效值和缺失值等。与问卷审核不同的是,录入后的数据清理一般由计算机完成,而不是人工完成。   

  

  -一定程度的进入   

  

  但是在数据清理的过程中,如果我们只做一些常规的判断,比如租赁订单中用户支付的金额要大于0元,房子面积不能是0平方米等等,经过简单的处理,很多异常的问题都可以解决,但是还是会有异常的数据,比如只限制订单金额为0元,从不期待金额为负的订单和金额为空的订单,最终会导致计算出的平均数据、各地区的业绩数据排名异常等等。下面将讨论如何用数据清理的一般过程来衡量数据清理的“程度”。   

  

     

  

  # 1.数据有效标志   

  

  有效标志是指一条数据是有效数据的关键标志,一般是数据的状态字段,如支付订单的支付状态、用户信息的注册状态、产品信息是否被删除等。这对该领域能否被采用起着决定性的作用。   

  

  如果条件允许,最好对原始数据进行统计(用SQL分组   

  

  由,Excel中的过滤功能等。)来查看有多少状态存在,以及有多少数据处于不同状态。然后根据业务流程,可以有效减少不必要的数据和潜在的问题,提高后续数据分析的速度和结果质量。   

  

  如果过滤的异常数据量超过订单的1%,我们应该与负责技术开发或数据分析的同事一起研究记录数据源时是否存在问题,甚至是未知的需求或潜在的bug。   

  

  例如,我们的租赁订单有多种租赁状态:   

  

     

  

  如果要分析过去已完成的租赁交易,只需要过滤状态码为03或状态值为“已完成”的数据,不需要处理其他任何数据。   

  

  但是如果要分析过去发生过的交易,需要过滤状态代码为00-05的订单,其他状态为null、Null值、-1或其他不可理解的值的数据,已经n年未使用的业务已经放弃不再使用,可以考虑过滤掉所有不需要的数据。   

  

  在不同的分析场景中,对数据的需求是不同的。不要只要求数据的数量。如果你觉得暂时用不上,那就放在第一位。这很可能会增加后期数据分析中筛选的工作量,占用计算机资源,甚至会白白死机等等。   

  

  其他:生产环境中或多或少都有用于测试的“生产验证”数据,其中可能包含一些极端的场景值,但这类数据实际上并没有发生,一般应该在数据清理过程中去除。   

  

  #二。数据唯一性标志   

  

  正如订单必须有订单号,用户必须有uuid,产品必须有skuid一样,系统中的数据一般都需要一个唯一的id来进行数据检索和区分。   

  

  但由于bug或子序逻辑以及不同状态的影响,可能会出现唯一性标记的重复,可能会对数据分析产生一定的影响。   

  

  例如,系统支持用户定义的域名重用逻辑。如果用户注销该帐户,其他人可以使用该域名。如果要分析系统中有多少子域,如果单纯统计子域记录的数量,就会出现问题。这个时候,我们应该先复制子域,然后统计数量。当订单位数设计较短且未设置随机值时,也存在订单编号和员工工号重复的可能。   

  

     

  

  但既然是“独一无二”的标志,那就要挑出重复项,看看原始数据是否需要根据业务需求进行修复,或者决定重复项的选项:   

  

  *仅保存最新的一个。   

  

  *保存最早生产的。   

  

  *保存其他字段中更完善的一个等等。   

  

  此外,由于错误、生产环境测试或其他未知问题,订单标识可能为空   

1,或不规范的订单号,这些一般都伴随有其他字段数据的残缺不全等问题。

  

我所分析的租赁订单中,存在有订单ID为空的记录,但是极为少数,考虑到这些数据年代久远已经不可考证了,所以直接筛选保留订单ID不为空的即可。

  

# 三、字段缺失

  

字段缺失是数据清洗中最常见的问题之一,造成此问题的原因也多种多样,甚至可能是导出数据时分隔符设置的不对,导致把数据csv、xls等导入分析系统或Excel后造成的错误分隔导致的。

  

  

## 1\. 检查缺失字段的比例

  

如果某个字段数据缺失严重,则要考虑是否存在程序bug,或者导入导出的流程是否有问题。

  

## 2\. 对缺失字段的数据进行处理

  

删除数据:

  

一旦发现数据中存在一个或多个关键数据缺失的,就把这条数据删了不采用。这种一刀流的做法比较适合数据字段比较少,且缺的都是关键数据的场景,例如订单中金额为空,用户的账号为空等情况。

  

部分采纳:

  

该字段只用在部分分析结果中时,例如做租赁租金的行政区县分布时,一条数据包含了租金、房子所在的行政区,但是承租人的性别为空,此时字段缺失并不影响分析结果,此场景可以考虑保留此数据。

  

但是要做不同性别的人租房租金偏好分析时,此数性别为空,则应不予采纳。

  

数据填充:

  

例如公司要做宣传物料,其中有要求租赁市场成交面积统计,但是系统中成交的租赁记录里,有超过5%记录房屋面积都为空没登记(与早期为非必填有关),此时就需要进行数据填充。数据填充有几种方法论可以参考:

  

* 根据有数据的记录平均值填充。优点:简单粗暴快速;缺点:可靠性不高

  

* 建立对应的数据模型,预测缺失字段的数值并填充。例如根据没问题的数据计算对应缺失了面积的记录所在区域,类似户型、租金水平的房屋面积,然后填充到缺失字段中。优点:精准度高,有据可依;缺点:难度大速度慢效率低

  

* 进阶版:通过平均值/模型数据的方法,增加测算误差值,然后随机生成平均值±误差值中间的数据进行缺失字段填充。

  

* 人工经验填充。此方案只针对少量数据或缺失数据特别重要时,可以根据业务人员经验填充,数据量大时不合适。

  

无论是根据平均值、模型数据、人工经验进行缺失字段填充,讲究的都是有据可依,不是瞎填充数据。如果缺失的字段随机性或不确定性比较高,不适合常规的数据填充的话,如果没有更好的方法论可以采用,建议删除/不采纳此条数据。

  

不同的业务场景和分析需求,对于缺失数据的处理是不一样的:

  

追求更漂亮的数据和业绩:

  

理应最大化的保留数据,通过合理的方法进行数据补全。

  

业务发展:

  

可以采用部分采纳或者删除字段缺失数据的方式,最好同时配合每个字段的缺失率情况,对于业务价值高的数据,数据本身的完善程度和数据分析结果一样重要,需要从源头上解决此问题。

  

只是看看:

  

如果只是想客观看看市场行情,或者该字段并不是太重要的数据,只是走势有参考作用,则可以考虑删除对应的数据,以免造成困扰,避免空值导致计算结果偏差或报错。

  

# 四、错误数据

  

错误数据也是一个常见的问题,除了bug导致的错误数据外,主要出自非系统统计的,人工填写的数据上,由于缺乏有效的限制手段、审核手段,导致个别数据可能出现异常离谱的问题,从而影响到看板数据的正常统计。

  

例如租赁记录中,就有出租面积为20000万平方米,租金才500块的记录存在,在全局而言由于正确数据足够多,这笔订单影响微乎其微,但是如果只看这一个楼盘、商圈,那就对当地的平均租金、户型平均面积等统计都会造成重大影响,然后做排行榜的时候,这个楼盘、商圈就会突出重围排名特别靠前。

  

  

数据错误的前提是,首先知道什么是正确的,错误是相对于正确的定义而言的:

  

## 1\. 符合格式规范的数据

  

例子:要求填写阿拉伯数字

  

正确:123456

  

错误:拾贰万叁仟肆佰伍拾陆、123,456

  

## 2\. 符合大家共识的合理范围

  

例子:房屋租金,单位为元/月

  

正确:2000

  

错误:-911、999999999

  

## 3\. 看似不合理,但是可以通过其他内容佐证的数据

  

一个城市平均租赁的房屋的面积都是几十平方米,但是突然有条租赁记录是2000平方米,不过价格为10万元/月,业主、承租人、位置等信息都完整,我们觉得就有可能是正确的,大概率是租了个厂房一栋楼。但是几百平米以上的房子只要几百块甚至不要钱,很明显就不合理了。

  

## 4\. 可以溯源,事实如此的数据

  

分析师就是这笔订单的当事人,合同、现场照片甚至视频监控一应俱全……

  

对于错误数据,若无法有其他有效证据佐证的数据,就要结合分析场景进行处理,以免干扰分析结果。

  

1)根据错误类型进行划分

  

* 格式类错误:例如数字写成了中文字,数字中有小写逗号,年月日yyyy.mm.dd写成yyyy年m月d日,或者其他不按规范填写的内容,当有大量的数据为同样类型的错误时,可以考虑通过编写代码/脚本或者导出使用Excel等工具搜索替换,从而进行批量修正。

  

* 范围类错误:应结合其他字段数据,参考缺失字段的填充方式进行数据重设。

  

2)根据字段意义进行划分

  

* 核心字段:即做业绩报表用的,那就得溯源、考证、根据实际情况进行修正,无法修正时,结合其他字段进行数据重设,重设为一个合理范围内的数值。

  

* 非核心字段:先统计一下错误数据的比例,如果比例不高,如低于1%,可以考虑直接删除或不采纳对应数据,影响小效率高。如果数据占比高,再根据错误类型决定具体修正方案。

  

# 五、清洗结果分析

  

通过对数据进行清洗后,需要统计清洗前后的数据,看清洗是否达到了目的。

  

  

1)数据损失评估

  

例如清洗前有关联的原始数据有10万,清洗后数据剩下了9.5万条,损失了5%的数据,如果数据分析的目的是做市场分析而不是财务报表,那么这个损失程度我们会认为在可接受范围内。

  

如果清洗完发现剩下不到5万条数据,就需要去思考这个清洗是否有效,是否导致重要数据被漏掉了。

  

2)数据失真评估

  

对于结果要求可靠性高的分析,如财务报表,需要对填充、调整的数据量进行评估,填充的数据加上因为非格式问题导致的数据调整,一般不能超过数据总量的5%,且最终数据的平均值,应该与清洗前完全没问题的数据平均值基本一致,相差±1%,这样填充/调整操作才可信度高。具体比例因人而异,但是填充、调整过的数据量太多,可信度会大幅下降。

  

数据可信度越高,代表数据失真度越低,失真度越低的数据用于业务发展规划、分析时,得出的结论可靠程度才更高。

  

# 六、总结

  

通过对数据清洗过程的分析,其实如何进行数据清洗,这其中的“度”量,与分析目的和场景息息相关,同一份数据,不同的分析场景,可能需要不同的清洗方案,从而现成不同的数据集合。

  

由于清洗方式不一样,得出的数据结论也会有小微的偏差,但是总体方向应该是一致的。

  

## #专栏作家#

  

iCheer,公众号:云主子,人人都是产品经理专栏作家。房地产/物业行业产品经理,Python编程爱好者,养猫发烧友。

  

本文原创发布于人人都是产品经理。未经许可,禁止转载

  

题图来自Unsplash,基于CC0协议