康夏散书事件的技术分析:在数据面前,他无能为力
在写这篇文章之前,我特意翻看了一下最近的微博。看到已经有人拿到了康夏的书,并且也收到了退款。那么,至少,随着时间推移,事情的真相会变得更清楚。
我之所以要写这篇文章,其一是因为我和康夏有过两封邮件,一通长电话的接触,帮他做了发书和退款数据的基本整理;其二是因为,从我对Excel这个工具的理解和经验,以及对数据长期的观察,认为康夏卖书过程中间至少有一半的状况是由数据引发,他的确被数据“坑”了;其三,原本过去也就过去了,大家都知道康夏最后选择诀别社交网络,但未来一定还会有个人甚至企业,会在社交网络上发起有商品交易的互动行为,而数据,将决定事件走向“天堂”或“地狱”。
我希望把数据的经验分享出来,以便发起人将来可以作为参考,参与者也更能理解事件的进程。而且,从我个人来讲,以Excel数据状况为事实,想要告诉大家,我们认为的康夏的某些错误,其实他真的无能为力,甚至,已经尽力。
我和康夏本是彻彻底底的陌生人,在这件事之前我没有关注他的微博和公众号,甚至不知道有这么一个人存在。有一天,我看到朋友圈里一位最近刚刚长聊过的,和我育儿理念非常相似,且相互认同的朋友,转发了康夏收到77万元时的第一篇说明文章。而我这位朋友在朋友圈表达的意思是,通过康夏卖书这件事,她发现有很多和她相同的读书人,她很开心。出于对她个人品质的认可,我看完了那篇文章。当时脑子里瞬间出现了两个想法:一是,康夏表现的非常有诚意,是个不错的人;另外,他一定会遭遇严重到他没办法解决的数据问题。由于我信任我这位朋友,爱屋及乌,再加上我的数据观点一直是,原始数据对于数据工作有决定性作用。所以,既然是缘分让我看到了这件事,我决定帮帮他。
我给他发去了一封邮件,说:“我对数据有些研究,觉得你可能马上会面临极大的数据难题。如果到时候需要帮助,就通过邮件联系我。”为了证明我是一个真实存在的人(没办法,互联网上的信息真真假假),我还让他上网搜搜,好确定我不是什么骗子。我是5月19日给他发的邮件,5月20日,他的回复是:“太感动了……非常感谢,已经快被海量数据搞死了。”
接下来的内容,是纯技术性的,Excel用得稍好的人会理解得更清楚一些。如果你压根儿不知道什么是Vlookup函数,也没有听说过数据透视表,也不知道Excel中函数和数据处理的一般原则,那么,这一段你可能无法比较有共鸣的感受到什么叫“数据灾难”。
康夏在后来的文章中反复提到几个东西:1万条支付数据,一个人打款多次,做匹配很难,有的人信息填写不全,支付宝限制20个字。一般人看到这样的文字,都不会有特别的感受,但事实上,数据灾难就藏在这里面。他说的这张支付数据表,我给大家看看。(为了真实起见,我用的是康夏发给我的原始数据,但为了别人的隐私,我把与个人相关的关键数据做了类似遮挡、缩短等处理。我尝试了把图片另存下来,可以看到表格细节。)
第一点——支付数据太多
这张表一共有11744条支付数据(截图的时候往上挪动了一些,因为这部分数据更有代表性),若用肉眼看,手工整理,假设一条数据10秒,那也不是一般地球人体力和精力能承受的。在企业做过从系统中导出的这样的表的人,就会很清楚其中的痛楚。所以,首先,数据量的确大到超出手工整理范围了。我之所以强调手工,一是因为康夏告诉我他不怎么会用Excel,二是我后面会讲的,这份数据有先天的问题,函数等等只能给到辅助性的处理信息,而没办法真正批量得到最精准的结果。
第二点——支付数据先天有缺陷
表格中蓝色框内的内容,体现了“支付宝限制20个字”以及“一个人多次打款”这两件事。限制20个字带来的严重后果,就是买家必须通过多次打款,每次留20个字,才能填写清楚自己完整的地址以及对于书的喜好,甚至,还要给康夏留言,说两句贴心话。而这件事给后期处理带来的是什么呢?
我们必须假设1万条支付信息中,有名字相同的人,那么,在发书和整理数据的时候,就要把名字相同的人挑出来。而由于一个人就可能形成了多条数据记录,那么,张三(1号)有10条数据(很多个0.1块钱),张三(2号)有5条数据,Excel根本没办法知道,到底有几个张三。传统的“去重”方法不可行,用数据透视表计数的方法也不可行。而且,表格中其他数据,例如“交易号”、“交易创建时间”、“付款时间”等都不能用于辅助判断,到底有多少重名的人。这就为后期的匹配埋下了严重隐患。
你可能会问:为什么要匹配?匹配什么?因为支付数据里,很多人一激动,根本没留地址,甚至电话也没有。那么,康夏就没有办法给他们寄书,也不可能联系到他们(能力和精力都不行)。他就只能从自己的收集渠道,也就是他讲的,公众号、QQ、通讯录、通讯地址上拔下来的,有地址和电话的,给他留言的买家中,用他们的信息再去支付大表里进行匹配,看他们是否已经付款,以及付了多少钱,才能决定,应该给谁发书,发几本。匹配的过程,虽然是Vlookup可以轻易做的,但这中间又有其他问题,所以,Vlookup的最终结果只能说凑合能用,这后面会讲。
第三点——文本信息无法整理
表格中黑色框的部分,一个叫“商品名称”,一个叫“备注”。我不知道买家在操作支付宝的时候是怎么输入的,但显然,在一份原始数据中,有两列文本描述的信息是极大的数据灾难。因为,这两列,有的人填的内容相同,有的人在两列中内容互补,有的人填了其中一列而另外一列没填,有的人把电话写在“商品名称”列,而有的写在“备注”列。
Excel对于数据的判断,是按属性来的,例如:单元格填历史、地理、天文这样的代表科目的属性词。假如单元格内是一句话,要提取其中某个部分可就困难了。你可能说,不是有文本函数可以做吗?对的,文本函数Right/Left/Mid/Search都可以做,但1万行数据要有统一的规律才能批量处理。而像这张支付数据表,文本部分根本没有任何规律可言,且分布在两列里面。这是违反Excel数据结构规则的,所以,它帮不上忙。假设,文本只是分布在两列中,而同一个人的打款记录只有一条数据,那么,用&符号或者Concatenate函数,可以把两部分文本合并到一个单元格,还有可能进行关键信息的提取。
但前面说过,张三可能有9条打款记录,每一条备注了20个字,也就是说,不仅在行方向需要合并单元格内容,在列方向也要合并,这几乎是不可能的。而提取不出支付数据中的关键文本信息,就相当于对买家的身份、联系方式、喜好等一无所知。也许还有人觉得,既然你康夏接了这个活儿,死也得用手工的方式,一条一条把数据对出来,这样才对得起观众。
公平的讲,姑且不说那段时间他有5000封邮件要处理,每分钟微信都会留几百条信息,还要打包,处理各种琐事,就说啥事情也不做,只盯着数据看,一条核对30秒,中间不停,那也是一个时间上的天文数字。
亲身体会数据,比从文字上看要残酷得多
既然说到了工作量的问题,我觉得有必要多说两句。我们平时看文章里写维护10个微信群,一个人去了26个国家深度旅游,或者800条数据要核对。这些数字往往看起来不太累,但真实做起来,却要人命。罗辑思维二期会员招募的时候,一个死磕侠管理10个微信群,一个群几百号人,一分钟就会产生几千条留言,而且每分钟都在产生。你想想,读完都不可能,怎么在里面回复。那时候,我亲眼看见死磕侠们吐血地每天加班到凌晨甚至5点,那是一段回忆起来简直血腥的日子。26个国家深度旅游,看起来没很多吧,但假设一年两次选2个国家深度旅游,26个国家需要13年。从17岁花季要干到30而立。800条数据核对看起来也不多,做做就知道了。
所以,从数据的角度,亲身体会真的比文字上看到的要残酷得多。有时候是尽力而为,但大多数时候是无能为力。
第二张表——康夏自己整理的买家信息
前面说了那么多,想要证明的是,支付宝导出来的支付数据,由于有先天的缺陷,是无法用于做出发书或退款决定的(退款一会儿详细讲)。于是,康夏通过各种渠道,收集了2607条比较完整的买家信息。接下来,他就面临要将这2607条数据(截止5月23日他给到我的),去到1万条支付数据中进行匹配的工作。
匹配的目的是:第一,看这个买家真实体现在支付宝中的支付金额是多少?第二,看这个买家是否已经支付?前者,用于决定该寄出几本书;后者,用于决定是不是要寄书。这时候,麻烦就来了。两张表唯一可以进行匹配的只有“姓名”,在支付数据中叫做“交易对方”。姓名这件事很容易出问题,按照Vlookup的默认规则,只能匹配出第一条数据,当有相同名字的人存在于支付数据中时,Vlookup无法精确判断谁和康夏收集的这个名字对应。这是处理后的数据可能不精准的第一原因。
匹配到对应的名字后,要通过Vlookup提取他/她具体支付的款项。由于支付数据中一个人可能打款9次,第一条记录也许是0.1块钱,这就不对。那么,把支付数据中的金额先按降序排列,再匹配呢?也不行。因为,有的人是8个0.1块,1个99块,可以用99块作为最终结果。而有的人是3个30块,那么,Vlookup只能匹配出其中一个30块来,就产生极大的错误了。
假如先用数据透视表,按“交易对方”,也就是人名做金额的汇总后,再用Vlookup匹配,行不行?也不行。因为,在1万条支付记录中,我们根本不知道有几个重名的人。数据透视表会把他们的金额加在一起,而这时候做出来的金额匹配,会出更大的问题。康夏有可能给张三(1号)寄去了6本书,但实际上,他只付了3本书的钱,而另外一个张三(2号)就会给了钱没有收到书,后期还收不到退款,这事儿就闹得更大了。
我想说这根本不是人干的活儿,没错,进退两难,有心无力。
各种数据缺陷下的折衷方案
从任何角度来讲,我都没有立场帮康夏决定应该寄书给谁。所以,我提供的仅仅是数据的初步整理和匹配,并且尽量给他更多的数据维度以便他做决定。同时,设定好退款清单的自动获得,这件事很重要。至于那张表他最后是怎么使用的,我也不得而知,能确定的是,这应该为他节约了至少一周的时间。兵荒马乱中,能争取到时间就很宝贵了,康夏自己在一篇文章中开心地说快了半个月,当然,后来都删了。最终的寄书清单和退款清单,也许是从这张表来的。
这张表用名字,从2607条完整的买家数据中,匹配出了已经支付的1896个买家,并且提取了一条对应的备注信息用于参考,以及与收集来的地址做可能的对照。
他要做的是,根据自己的判断,从1896个买家中选出要寄书的人,在表格的“发货标记”列选中“是”,这些数据就会返回到1万条支付数据中,将对应的人标记出来。那么,剩下的就是需要退款的买家清单。由于支付宝已经答应帮他做统一的退款,但清单需要他提供。所以,康夏必须先搞定所有的数据,把寄书的清单确定下来,甚至可能把书真实的寄了,才能给到支付宝一份最终的退款数据,退款这件事才能开始进行。
康夏在这件事上没有撒谎,退款的确不是点一个按钮就可以完成的,那么多个0.1块钱,假如他自己进行了一部分操作,后续数据的对应就更加难上加难,到时候场面会完全失控。
结语
过去的一段时间,很多文章从社交和互联网方面,分析了康夏卖书事件演变过程中的种种原因和结果。孰是孰非,真相如何,我确定我自己也搞不清楚。就像有一篇文章说,对于一个事件,局外人就算以为自己知道了所有细节,其实也不知道其中真正的细节。
我不愿意去揣测康夏的心思,但也没办法相信网络上各方的言论,只是凭着自己原始的感受,以及有限的接触,包括上面讲到的数据灾难。我会觉得,他并不可恶。真正要作恶的人,应该不会和自己的父母一起来干这件事,也许请临时工会更好。对于即将留学的人,大部分都会至少准备半年吧,而临到走之前,谁又会愿意给自己惹一身事呢。再有,康夏也不是一个突然从石头里蹦出来的人,他之前在公众号里的形象,对于关注他的人来说,也是认可才会参与到这个事件里来的。我是愿意相信这里面有信息不对称所导致的误会,也有一个人面对突发网络事件的措手不及,同时,在特定情况下脑子短路也许会做不当选择的可能。
无论怎样,一棒子打死一个人,否定他的所有过去,是没必要的。而且,他在自己的公众号和自己的粉丝玩了一件事,这点自由还是应该给他的。就像蔡康永在康熙来了有一集中,对黄国伦的建议:你家不收拾,只要你们夫妻俩自己受得了就行,其实,也不关别人的事。但是,以后倒也不用再把没有收拾的照片拿出来吓人。康夏卖书事件至此,至少,慢慢已经有人收到书,收到退款了。而康夏本人,因为这件事离开了社交网络。一阵风起云涌,终归回到平静。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
你是否被统计学复杂的理论和晦涩的公式劝退过?别担心,“山有木兮:统计学极简入门(Python)” 将为你一一化解这些难题。课程 ...
2025-03-31在电商、零售、甚至内容付费业务中,你真的了解你的客户吗? 有些客户下了一两次单就消失了,有些人每个月都回购,有些人曾经是 ...
2025-03-31在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的需求持续飙升。世界经济论坛发布的《未来就业报告》, ...
2025-03-28你有没有遇到过这样的情况?流量进来了,转化率却不高,辛辛苦苦拉来的用户,最后大部分都悄无声息地离开了,这时候漏斗分析就非 ...
2025-03-27TensorFlow Datasets(TFDS)是一个用于下载、管理和预处理机器学习数据集的库。它提供了易于使用的API,允许用户从现有集合中 ...
2025-03-26"不谋全局者,不足谋一域。"在数据驱动的商业时代,战略级数据分析能力已成为职场核心竞争力。《CDA二级教材:商业策略数据分析 ...
2025-03-26当你在某宝刷到【猜你喜欢】时,当抖音精准推来你的梦中情猫时,当美团外卖弹窗刚好是你想吃的火锅店…… 恭喜你,你正在被用户 ...
2025-03-26当面试官问起随机森林时,他到底在考察什么? ""请解释随机森林的原理""——这是数据分析岗位面试中的经典问题。但你可能不知道 ...
2025-03-25在数字化浪潮席卷的当下,数据俨然成为企业的命脉,贯穿于业务运作的各个环节。从线上到线下,从平台的交易数据,到门店的运营 ...
2025-03-25在互联网和移动应用领域,DAU(日活跃用户数)是一个耳熟能详的指标。无论是产品经理、运营,还是数据分析师,DAU都是衡量产品 ...
2025-03-24ABtest做的好,产品优化效果差不了!可见ABtest在评估优化策略的效果方面地位还是很高的,那么如何在业务中应用ABtest? 结合企业 ...
2025-03-21在企业数据分析中,指标体系是至关重要的工具。不仅帮助企业统一数据标准、提升数据质量,还能为业务决策提供有力支持。本文将围 ...
2025-03-20解锁数据分析师高薪密码,CDA 脱产就业班助你逆袭! 在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的 ...
2025-03-19在 MySQL 数据库中,查询一张表但是不包含某个字段可以通过以下两种方法实现:使用 SELECT 子句以明确指定想要的字段,或者使 ...
2025-03-17在当今数字化时代,数据成为企业发展的关键驱动力,而用户画像作为数据分析的重要成果,改变了企业理解用户、开展业务的方式。无 ...
2025-03-172025年是智能体(AI Agent)的元年,大模型和智能体的发展比较迅猛。感觉年初的deepseek刚火没多久,这几天Manus又成为媒体头条 ...
2025-03-14以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-13以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda.cn/go ...
2025-03-12以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-11随着数字化转型的加速,企业积累了海量数据,如何从这些数据中挖掘有价值的信息,成为企业提升竞争力的关键。CDA认证考试体系应 ...
2025-03-10