作为数据分析师的你都有哪些常用工具

作者介绍:

程虹升,唯品会大数据部数据分析师,数据分析和挖掘实战的践行者,“51CEO”公众号的运营者。



本文总结数据分析常用的软件,以及推荐相应的学习参考资料。

1. Excel

常用操作有函数、可视化、数据透视表、VBA。

函数

640?wx_fmt=png

可视化

i.单元格

640?wx_fmt=png

ii.静态图

640?wx_fmt=png

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类:

  • 结构化数据,e.g.平时见到的类似Excel表格那样的数据;

  • 半结构化数据,存在父子节点的数据,e.g. XML, HTML, json格式的数据;

  • 非结构化数据,e.g. 文本、图片、音频、视频等;

数据分析“直接”使用的数据大多数都为结构化数据,这些数据通常都存在数据库里(SQLServer, Mysql, Oracle, Hive等),而要提取这些数据,SQL必不可少。

常见的SQL操作分为:

  • ,即select语句,可以分为select, from, where, group by 4个模块;

  • ,即create(新建), insert(插数), drop(删除)。

常见的数据类型有:

  • 数值,e.g. int, bigint, bool, float, decimal等;

  • 字符串,e.g. char, varchar, string等;

  • 日期,e.g. date, datetime, timestamp等;

对应这3类数据类型的函数需要熟练掌握。

此外,还有两类必须掌握的函数:

1. 聚合函数,也称为“聚集函数”,常用的有:count, sum, avg, max, min, group by 

2. 窗口函数,即对一组值进行操作(不需要使用到group by),常见的函数有(此处以Hive举例):

  • 计算:count|sum|avg|max|min over;

  • 分区:partition by;

  • 位置:lag, lead, first_value,  last_value等;

  • 排序:row_number, rank, dense_rank, ntile;

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) 

更多可以参考:http://lxw1234.com/archives/tag/hive-window-functions


荐书:

SQL必知必会,Ben Forta

注:作者还有两本《必知必会》,分别是讲MySQL和Oracle PL/SQL的


3. Python/R

Python和R不仅免费,还属于“平台模式”——来自世界各地的开发者都可以贡献自己开发的工具包。“平台模式”带来了大量的充满热情的用户,用户越多,软件的生命力就越强,发展也越快,这可以看作是软件生态的“人口红利”。

Python和R各有优缺点和相应的适用场景,数据分析(挖掘)90%以上的场景,两个软件都可以覆盖到,如果你已经在学其中一个,那就努力学好直至精通就行。

数据分析软件的学习框架都很相似,如下是个人总结的Python学习框架(仅供参考)。

注:更多可参考 编程学习建议

作为数据分析师的你都有哪些常用工具_第1张图片

注:Python学习框架

入门资料推荐:

Python

  • Python基础编程,Magnus Lie Hetland;

  • 像计算机科学家一样思考Python,Allen B. Downey;

  • 官方文档,包括其他常用数据分析module的官方文档(很多教程就是根据官方文档改编过来的);

R

  • R语言实战,Robert I. Kabacoff

  • Advanced R,Hadley Wickham

  • Cran Task Views: https://cran.r-project.org/web/views/

注:更多关于R\Python的文章可以关注朋友Sim的公众号——”每天进步一点点2015“


4. SPSS

如果是业务人员要做数据分析,在编程上的要求就没有那么高,但又要做一些基础的分析,那么SPSS是需要学的。

荐书:

  • SPSS统计分析基础教程,张文彤;

  • SPSS统计分析高级教程,张文彤;

  • IBM SPSS数据分析与挖掘实战案例精粹,张文彤,钟云飞;

    注:该书的内容编排、案例以及提供的参考资料都非常好,虽然是用SPSS实现,但分析思路仍很值得参考;

  • Discovering Statistics Using IBM SPSS Statistics, Andy Field;

    注:作者的官网为 https://www.discoveringstatistics.com/,Discovering Statistics系列还有讲R和SAS的两本书,质量也应该不错。


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. 整理自己的知识框架,以及重点、难点、易错点,有体系的知识利用效率更高且更容易记住。此外,当你和别人分享你的学习经验时,表达出来也更清晰、更有条理。


工具属于“器”,不要沉迷于工具的使用,更重要的是“道”——对算法的掌握(使用场景、优缺点等)、对业务的理解等。


附:数据分析常用思维


你可能感兴趣的:(作为数据分析师的你都有哪些常用工具)