前言
首先说明一点,以下说到的技术对于数据分析师来说只是必备的能力,你的思维和对业务的理解往往决定了你的上限。 数据分析师是技术工种没错,但技术绝对不是全部,SQL/Python等等只是辅助你去完成分析工作,你的分析是否有价值由你的分析思路来决定。
当然对于数据分析师,技术也是非常重要的,目前互联网公司每天收到的打点数据(记录用户的点击,浏览等行为)一般都是GB甚至TB级别的,如果说你只会用Excel,肯定是完成不了分析工作的,所以如果你准备进入数据分析行业,以下的技术能力最好还是都具备。
技术要求
学习路径
这是之前整理的一份数据分析相关的技术域,算是目前比较主流的要求,另外像R,SPSS,SAS等等数据相关的工具语言,我这边是不推荐各位花时间去学习,因为现在用的公司已经越来越少了,大部分的使用场景用Python都能满足,更重要的是Python免费!
推荐学习顺序:
- Excel & 可视化工具
- SQL
- Python
Excel & 可视化工具
这两项学习成本不高,但带来的收益可能是最高的,特别是Excel,如果Excel用的很好,轻量级的分析任务都能轻松完成。
Excel
Excel对于办公室人群都是必备的一项技能,但其实大部分人也就只会调个字体,颜色,剩下全是靠Ctrl-C和Ctrl-V。
Excel真是一款非常强大的工具,所以在使用Excel的时候如果有什么需求请第一时间去百度,绝对能找到你想要的函数来实现。
- 透视表 通过拖拽就能完成分组计数求和等功能;
- 常用函数 如vlookup,sumifs,countifs等;
- 美化图表
调整前
调整后
可视化工具
目前市面上比较主流的商业可视化分析工具一般有Tableau和PowerBI,国内也有诸如帆软等产品,但目前做的最好的应该还是Tableau。
其实这些可视化工具用起来都大同小异,所以学一个就好了,首推Tableau吧,Tableau这几年在国内开始推广,用的公司肉眼可见的多起来了,官方有很完整的教程,学起来很方便的(小声BB:激活码可以淘宝购买)。
- 我的Tableau作品集——http://public.tableau.com/profile/awesome.tang#!/ 效果示例:
SQL
SQL应该是每个数据分析师必知必会的一项技能,这也是在你面试数据分析时候考察最多的一项技能。
当你成为一名数据分析师之后,你会发现你可能80%的时间都是在敲SQL。
SQL在所有编程语言中应该是比较容易的,而且对于数据分析师来说你只需要学会查询即可,增删改用到的情况非常少,而且很多时候不会给分析师增删改的权限,所以学起来的话其实不难。
目前市面上主流的关系型数据库有MySQL,Oracle等,与之对应的SQL语法都存在一些差异。另外对于很多互联网公司,传统的关系型数据库是满足不了海量数据的存储与计算需求的,所以近些年又出现来诸如hive,Kafka、Redis等等数据库,这样又衍生出来Hive-SQL,Presto,Spark SQL等,但好在写法逻辑是差不多的,有差别的是一些函数,所以当你能熟练的在Mysql上完成查询,在别的数据库大致也是可以的,只是需要一些时间去熟悉下函数。
各位如果自学而且周边没有数据库环境的话,建议自己安装一个Mysql库,然后在安装一个数据库管理工具(推荐Navicat),自己然后网上找些数据集导入进去,就可以开始学习了。
作为分析师你至少能熟练的完成以下功能 or 需求:
- 基本语法&数据类型;
- 表连接,并且需要知道不同连接方式之间的区别(
left join,right join,full join
等); - 分组聚合计算,清楚where和having的差异(
group by
); - 子查询以及with as的用法(Mysql里面早些版本还不支持with as的写法);
- 三个排序函数以及之间的差异(
rank() over,dense_rank() over,row_number() over
); - 分组排序(
row_number() over(partition by 字段1 order by 字段2 desc)
); - 行转列&列转行;
- 执行效率优化;
一般分析师写的SQL大概是下面这样子的:
Python
Python近几年的火热程度想必无须多言,「除了生孩子不会Python啥都会」这句话真不是假的,当前数据分析的招聘中,Python也是一项非常重要的技能,特别是针对高端点的职位,如果你在熟练使用SQL的基础上还会Python,薪资又会上升一个Level。
当然这其中也存在一件很尴尬的事,很多公司其实数据体系搭建的非常完善,从数据上报到仓库层再到分析层再到数据展现都有一套非常完善的流程去处理,Python的用武之地反而没有想象中那么多,很多时候只存在于一些客制化的需求,比如算法场景。
当然不管怎么说,Python能学还是尽量去学,很多时候我们用SQL 可视化工具可以完成90%的需求,但往往就是这剩下的10%的需求可以让你脱引而出。
数据分析师会在以下几个场景中用到Python:
- 数据处理 你拿到的数据和你最后需要的数据肯定是有差别的,这之中需要你去完成清洗,筛选,聚合计算等等操作,在Python中一般用的比较多的是Pandas,numpy一般用于处理算法需要的数据; ???关于Pandas的学习可以看我之前写的教程——【Pandas教程】像写SQL一样用Pandas~
- 数据可视化 Python可视化用到的比较多的几个库是matplotlib,seaborn,pyecharts
- `matplotlib`:功能比较强大,但是图表配置项比较麻烦,默认的配色方案不太好看;
代码语言:txt复制- `seaborn`:基于matplotlib开发的库,使用起来比较简单些,配色方案更讨喜;
代码语言:txt复制- `pyechats`:基于百度echarts开发的,图表带有交互性,可在jupyter notebook中使用,也可直接存为html文件。
- 爬虫 对于数据分析师偶尔也会有些爬虫的需求,譬如获取下接口返回的数据,或者爬取以下竞品的数据,当然这项并不会作为数据分析师的基本要求,所以如果有兴趣的话也可以学一下。 ???可以参看我之前些的爬虫教程——【爬虫教程】吐血整理,最详细的爬虫入门教程~
算法能力
这部分开始是准备写在Python的应用场景下的,后面想想还是应该单独拿出来讲讲。
其实这部分工作应该是属于算法工程师的,但很多公司并没有专门的算法部门,所以很多时候也就由数据分析师来完成了,在数据分析师的招聘要求中我们也能经常见到「熟悉常见的机器学习算法」的要求。
在我看来,算法能力对于数据分析师不是一个必备项,但会是一个加分项。
推荐按照如下路径来提升自己:
- 了解目前常见的机器学习算法,而且会用;
「会用」其实这点很容易做到,目前Python里有
sciklit-learn
库,两三行代码就能完成一个算法。 - 理解算法背后的实现逻辑; 譬如说决策树是如何完成分类的,信息熵,信息增益怎么计算的等等。
- 不依赖
sciklit-learn
等第三方库实现整个算法逻辑; 这样既能提升代码能力,也能提升对于算法的理解。
最后
文章开始说了,对于数据分析师来说,技术只是其中的一部分,更重要的是思维能力和对业务的理解,但这些可能不好去罗列出来,需要经验的慢慢积累沉淀。
???后续还会整理下数据分析师的面试技巧以及武汉推荐的互联网公司,各位如果有任何疑问也欢迎私信~