转自丘壑博客 转载注明链接
前言
书接上回,上一篇里我们已经把需要的数据爬下来了。众所周知,数据只有在分析出结论的时候才有价值,不能是为了爬而爬。
数据分析(Data Analysis)是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。
在数据分析前要找到分析的目标,带着问题去分析,也就是了解前期数据分析的需求。在产品运营过程中,数据分析具有极其重要的战略意义,是产品优化和产品决策的核心大脑。因此做好数据分析,是产品运营中最重要的环节之一。如果程序员能有一些数据分析的意识,懂一些数据分析的基本方法,无疑会对自身的职业发展会有很大的帮助。
所以,这一篇里将讲一点很简单的数据分析的方法,看看能不能得出一些有意思的结论。同样的,也是为了提供一种思路和方法。
思路
为什么分析?
首先,你得知道为什么分析?弄清楚此次数据分析的目的。因为我本身也是一个开发者,所以对WordPress插件开发者的情况会天然的比较感兴趣,也想看看国内外一些优秀的插件开发者是谁,在做什么插件。
实际这次的分析纯属个人兴趣,具体这些结论能有什么用,好像也并没有什么卵用。还有一个原因可能是前段时间学了大量的机器学习数据分析方面的知识,如饥似渴的在YouTube上在各种网站上填鸭式学习,脑子塞的满满的,也想通过这次实验一下,看看自己是不是真的理解了,而不是说仅仅是为了学习而学习
需要哪些数据? 如何采集?
数据来源的问题上一篇中已经解决了,不过有一点需要补充一下,是有的插件可能并没有在WordPress.org上发布过,可能就只是在github上或个人网站上提供了一个zip文件,就好比有的手机app并没有在各大应用商店上发布,这种会被遗漏掉,不过无所谓了,这种数据也不好统计到。
数据长什么样子?分析的维度是什么?
在做分析之前,先要简单的观察数据的情况,比如他们的属性个数、属性类别、缺失值情况等等,对数据有个大概的认识。
在上一篇文章中爬取的数据中,我们得到了一个WordPress.org的svn上的所有插件列表,但其实有很多无效数据,有些插件在WordPress.org上已经找不到了,并没有过滤掉,会有很多行这种:
{"error": "Plugin not found."}
要么在把这些行全部删除掉,要么在分析的时候过滤掉,其实完全可以在爬的时候就过滤掉,不管怎么说自己挖的坑还是要自己填,当然,在数据分析的时候这种情况也是经常会出现的,第一步都需要先把无效数据过滤掉。为了后面方便一点,我把这些行直接删除掉了。竟然有24685行 “Plugin not found.”。。。删玩之后还有54421行,这么一算,和官网的插件数量也差不多啊。。。
gsed -i '/"Plugin not found."/d' output.jsonl
然后,还需要对数据结构有一个直观性的了解。有必要把json数据结构展示一下,一个正常插件的完整有效信息包容如下字段和值,基本上都可以望文生义,没有什么特别复杂奇怪的,后面的分析都是基于这些字段进行的:
如何处理数据?
整理数据是门技术活,相关工具也特别多,从开源的到各大厂商的都有。不得不承认Excel是个强大工具,很多时候一些简单的数据分析用Excel就可以很快速方便的完成,如果能熟练掌握和使用数据透视表那就更不得了了。我在工作中也经常用Excel,玩的还算挺溜的,用数据透视表做各种维度的运维数据处理和时间进度安排,也能很好的完成工作。不过好像在程序员眼中似乎Office三大套件都挺不受待见的,我以前的一个leader就很不喜欢Excel,搞的我都得偷偷用,真是够够的。不知道有一句话说的好吗,“干活的累死累活,有成果那又如何,到头来干不过写PPT 的”。其实完全没有必要对一些工具带着有色眼镜看,现在我是一个实用主义者,拿来主义者,能用就行,够用就行,曾经我也有程序员中的那种工具癖好,信奉“工欲善其事必先利其器”,光tm磨刀了,什么柴都没砍!题外话了。
本次会用到的是Python的强大的数据分析工具pandas、numpy。这几个库都是大名鼎鼎如雷贯耳的了,只要知道Python的人就算没用过也会多少有所