作者介绍: 程虹升,唯品会大数据部数据分析师,数据分析和挖掘实战的践行者,“51CEO”公众号的运营者。 本文总结数据分析常用的软件,以及推荐相应的学习参考资料。 1. Excel 常用操作有函数、可视化、数据透视表、VBA。 函数 可视化 i.单元格 ii.静态图 iii.动态图 即带有控件(部分涉及VBA),可以选择数据并动态展示结果的图表,如果要用Excel来做业务数据的Dashboard,动态图是很好的解决方案。 注:黄成明老师的《数据化管理》中的部分内容涉及如何用Excel建立业务运营工具。 数据透视表 Ctrl A-->Alt-->D-->P-->F ——透视表“一条龙”操作应该是目前用到最多的快捷键组合了。 数据透视表是快速数据分析的不二之选,主要操作为分组计算,当然利用“切片”工具来动态展示数据也是可以的(数据透视表也可以用来做动态仪表盘)。 VBA 如果不想让一个重复的枯燥的动作重复几百上千次,那么VBA编程是一个比较好的解决方案,编程的目的主要在于自动化和定制化,VBA编程相对简单易学(甚至有的岗位就是专门开发VBA模块的)。 荐书: 谁说菜鸟不会数据分析,张文霖; 点评:数据分析入门不错的书,小蚊子老师的博客上也有蛮多干货的; Excel疑难千寻千解(套装); 点评:ExcelHome,ExcelTip两个论坛出的书质量都非常好,该套装基本是“行走江湖”必备,涉及函数、VBA、操作、数据透视表等; Excel图表之道,刘万祥; 点评:最早是从博客上了解到刘老师(博客为“刘万祥ExcelPro”),那时才发现Excel也可以做出非常高大上的商务图; 左手数据,右手图表,徐军泰; 点评:该书主要讲动态图,也就是可以有交互操作的图表,第一份工作的时候参考此书做了一个半自动化的Excel监控模板,受益颇多; 别怕,Excel VBA其实很简单,Excel Home; 点评:结构清晰,行文有趣,有编程基础的话,很容易读懂。 2. SQL 数据一般可分为3类:
数据分析“直接”使用的数据大多数都为结构化数据,这些数据通常都存在数据库里(SQLServer, Mysql, Oracle, Hive等),而要提取这些数据,SQL必不可少。 常见的SQL操作分为:
常见的数据类型有:
对应这3类数据类型的函数需要熟练掌握。 此外,还有两类必须掌握的函数: 1. 聚合函数,也称为“聚集函数”,常用的有:count, sum, avg, max, min, group by ; 2. 窗口函数,即对一组值进行操作(不需要使用到group by),常见的函数有(此处以Hive举例):
e.g. 筛选用户最近的N单交易 row_number() over(partition by user_id order by create_time desc) 注:注意区分row_number, rank, dense_rank的差别 e.g.统计当日每小时累计交易金额 sum(orderamt) over(order by order_hour rows between unbounded preceding and current row)
荐书: SQL必知必会,Ben Forta 注:作者还有两本《必知必会》,分别是讲MySQL和Oracle PL/SQL的 3. Python/R Python和R不仅免费,还属于“平台模式”——来自世界各地的开发者都可以贡献自己开发的工具包。“平台模式”带来了大量的充满热情的用户,用户越多,软件的生命力就越强,发展也越快,这可以看作是软件生态的“人口红利”。 Python和R各有优缺点和相应的适用场景,数据分析(挖掘)90%以上的场景,两个软件都可以覆盖到,如果你已经在学其中一个,那就努力学好直至精通就行。 数据分析软件的学习框架都很相似,如下是个人总结的Python学习框架(仅供参考)。 注:更多可参考 编程学习建议 注:Python学习框架 入门资料推荐: Python
R
注:更多关于R\Python的文章可以关注朋友Sim的公众号——”每天进步一点点2015“ 4. SPSS 如果是业务人员要做数据分析,在编程上的要求就没有那么高,但又要做一些基础的分析,那么SPSS是需要学的。 荐书:
5. 其他 SAS 医药、金融类应用场景较多,如果要批量统计或出报告,Macro和GTL两部分的内容要掌握好; Matlab 和Mathematica、Maple并称为三大数学软件,常用于图像处理、信号检测、工程领域等,读研时分析fMRI图像大部分都是用Matlab操作,其开源替代方案是 Octave; Stata 偏向经济计量,可以编程,也支持界面化操作,但是用着总有种“不伦不类”的感觉,界面化操作没有SPSS好用,编程的话又不如Python/R方便,而且使用场景相对来说比较小众。 学习建议 1. 工具宜少不宜多,本人曾学过不少软件(瞎折腾),后来发现大部分学的都没用上(没有应用场景)。一般来说,Excel是面向小数据和简单的分析时用,SQL用来提数,Python/R则是遇到数据量较大或者模型更加复杂时用(不想编程可以选择SPSS),如果是超大型数据,则要结合Hive, Spark, Storm等平台使用; 2. 带着问题去学,“学以致用”的方法之一是“输出倒逼输入”,问题是我们实际遇到的,也就不用担心学习之后找不到使用场景的问题。学习Excel的时候尤其印象深刻,从基本的数据格式到VBA都是我遇到问题后去学的,User Guide或者《入门到精通》类的书太厚了,没必要都看一遍; 3. 教材宜精不宜广,找一本经典教材,打好基础,构建知识框架(主干),然后逐步“碎片化”的、以应用为导向地学支干的知识; 注:教材一般推荐人民邮电、电子工业、机械工业这3家出版社,如果要找英文电子书就上libgen; 4. 打好基础,再定方向,学习软件工具的时候要先把基础操作打好,层层递进,既要扎实又要有明确的方向。e.g.先学python的基础语法,然后再有针对性对选择学习和数据分析有关的工具包(pandas, scipy等); 注:不要为了追求高大上的效果而好高骛远(层级越高用的场景可能就越少),所谓“屠龙之术,学而无用”(更多可参考工具思维的陷阱); 5. 整理自己的知识框架,以及重点、难点、易错点,有体系的知识利用效率更高且更容易记住。此外,当你和别人分享你的学习经验时,表达出来也更清晰、更有条理。 工具属于“器”,不要沉迷于工具的使用,更重要的是“道”——对算法的掌握(使用场景、优缺点等)、对业务的理解等。 附:数据分析常用思维 |
|