【pandas】如何在业余时学数据分析?DATA TRAIN | 数据分析学习计划

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/captain811/article/details/82021086

https://www.kesci.com/

科赛

https://www.kesci.com/home/project/5a0575cd60680b295c1ecff2/code

DATA TRAIN | 数据分析学习计划

学习计划


Week1

学习素材

内容说明

  • Python关键代码的学习对数据科学、网页开发、机器学习均为十分重要且常见的语法知识。
  • 第二部分对 Pandas 最基础的命令代码及使用方式进行讲解,并配套相应的十套练习题。请各位同学使用Pandas练习题数据集进行训练。

Week2

学习素材

内容说明

  • Python三大核心工具包之一——Numpy教程

Week3

学习素材

内容说明

  • Matplotlib的设计理念是能够用轻松简单的方式生成强大的可视化效果,是Python学习过程中核心库之一。

Week4

学习素材

内容说明

seaborn是一个很棒的可视化库,尤其是当数据维度很大的时候,seaborn可以让我们用较少的代码去绘制一些描述性统计的图,便于找寻各维度变量之间的特征。

转眼之间,一个月过去了!恭喜你,现在终于朝着成为一名优秀的数据分析师迈出了第一步。

作者:保一雄
链接:https://www.zhihu.com/question/22119753/answer/228633346
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

来写一个非计算机/统计背景出身的人,如何利用业余时间学习数据分析的技能吧。

数据分析将会作为一门通识技能,进入越来越多的不同工作岗位中。毕竟“技多不压身”,掌握数据分析,一方面可以提升自己相应的业务能力,另一方面也可以让自己建立一种data-driven的视角,去思考各种问题。

关键词:非科班 + 业余时间 + 数据分析

结合自身的经历,我想从基本技能+动手实践两个角度谈谈。

基本技能

不论是学什么,还是需要先有一个大的框架。对于学习数据分析而言,需要的技能模块有统计基础+数据库知识+编程能力

统计基础

理工科的学生在本科阶段学习过概率论与数理统计,单从做数据分析的角度,其实已经够用了。那么在业余时间里,我们需要有一本书可以随时查漏补缺,《深入浅出统计学》你值得拥有。

数据库知识

关系型数据库很重要,因为在学习数据分析的初期甚至很长一段时间,你接触到的数据都存储在关系型数据库中,需要学习SQL语言去进行数据的查询。SQL的上手很快,强力推荐《SQL必知必会》,整本书通俗易懂,是学习SQL语言的不二之选。我当年入坑也就是这本书开始的。个人觉得,学习数据库的本质就是在学习一种与数据打交道的逻辑思维与能力。而且在编程中的很多思想都是和SQL之间相通的,比如:SQL中对data进行group by的操作,这个在Excel里类似于透视表,在Python/R中也有相应的group function去处理数据。甚至在以后的进阶过程,你会接触到分布式数据库和所对应的no-SQL语句,本质上都是和关系型数据库及SQL相通的。

编程能力

Excel --- 别拿Excel不当干粮,之前看到过一个段子:投行的童鞋们用Excel根本不需要鼠标,暂且放在这里调侃一番。不过,Excel里面的透视表(Pivot Table)确实是做数据分析的必备技能。透视表可以帮你迅速汇总数据,看到各类型数据的直观特征就像是让你站在了一个更高的视角上去看你的数据。作为进阶,Excel自带的函数,各种插件,以及VBA也是很好的工具,将Excel用到极致也不是不可以。

Python --- 当数据量大到用Excel打开都要好久的时候,或者我们想进一步提升能力的时候,需要学习一些hardcore技能,即用编程语言做数据分析。这里主要有R和Python两大流派。我个人推荐Python,一方面Python代码简单易懂,容易上手;另一方面学习资料超级多。在这里推荐一本书,《利用Python进行数据分析》,这本书涵盖了利用Python做数据清洗,数据可视化及分析的技能点,可以作为一本工具书随时查阅。

难道学习数据分析就一定要掌握这些基本技能吗?答案是,并不一定在开始的时候就全部掌握,学习数据分析最重要的方式就是动手实践,get your hands dirty at first。结合楼主的提问,重点讲讲动手实践的部分

动手实践:

这一部分其实就是在回答题主的几个问题:

  1. 从哪里弄到有分析价值的数据? --- 平台
  2. 在开源社区有没有开源项目适合用来学习数据分析?
  3. 可以自己动手做个什么项目来实践
  • 好的平台社区:既然是利用业余时间学习数据分析,那么一个好的平台社区将会起到事半功倍的效果。美国有Kaggle,中国有Kesci; 美国的kaggle是全世界做数据科学/数据分析的爱好者/从业者的聚集地,上面你可以看到各种大神的数据分析/挖掘项目,拿来自己练练手。中国现在也有了数据分析学习社区---科赛网Kesci; 在这里可以找到很多开源数据集启动你的数据分析之旅。What's more, Kesci有一个目前国内独有的在线数据分析平台,K-lab。当你在社区内看到不错的项目之后,可以fork过来在K-lab上面做自己的分析项目并在社区内做展示。我们也在推动从0到1学习数据分析的活动,陪伴中国的第一代数据分析师成长。
  • 随时查漏补缺:在这一路实践的过程中,你可能会遇到各种问题,知乎就是一个强大的搜索引擎,有很多大牛写的数据分析文章;当然,如果你英文能力强的话,欢迎copy and paste from StackOverflow, 你可以直接搜索你在写代码做数据分析遇到的各种问题,总有一款答案适合你。
  • 再进一步升级:这一路实践就像是游戏里打怪升级的过程,比如你发现自己对统计的知识点不是很清楚,你开始回过头去看统计学书籍;你发现数据存储在分布式系统里面,你开始学习no-SQL的知识;你发现自己对某一行业比较感兴趣,你开始通过数据分析去了解一个行业;你发现自己已经不满足于利用现成数据作分析,你开始学习使用爬虫去抓取数据作分析。逐个击破知识盲区,滚雪球式累积,这也是学习数据分析的精髓。

小结

学习数据分析本来就是搭好框架体系不断累积知识不断hack技能不断提升分析水平的过程。哪怕是业余时间学习,假以时日,亦可成大器。也许正因为不是科班出身,所以在奔向远方的道路上才会永不知足,永不疲倦,“stay hungry, stay foolish”。

1.1    方法论

高票答案分两种。

一是提供学习资源的,各种经典书籍、网站教程,都很好,能够为初学者减少很多资源筛选的时间。但对于很多浮躁的小白来说,无疑是目标缺失的,每一部分学完能做什么,如何应用,是一个很大的问题。这样的学习,很容易未入门就放弃,所以并不建议从啃一本书开始。

另一种是从实际的问题场景入手的。这确实是一个不错的方式,因为模拟了一个数据分析问题解决的流程。但这对于没有数据分析经验的人,特别是不怎么了解业务的人来说,这种方式又会陷入另一种困境:如何提出高质量的问题、如何找到清晰的分析思路。数据分析的思维是在有经验之后才能够养成的,而这种方式要求一开始就具备这种分析的思维,如果不懂业务问题,其实很难有针对性地去分析一个问题。

我们就从数据分析技术和数据分析思维的养成,来谈谈如何在业余时间高效学习数据分析。主要是给更多的人一条相对平滑的、简单的学习路径,让学习的过程变成实践的过程,每个阶段都能输出成果。

1.2    学习路径

先给出一条学习路径吧:

l  开始用数据玩起来  —— 探索性分析(可视化分析)

l  好像少点统计学知识—— 精细化分析(统计学分析)-python

l  数据不干净怎么办     —— 数据清洗(干净的数据更利于探索性/精细化 分析)

l  握草!python大法流弊 —— 精细化分析(python库)

l  SQL打开新世界的大门—— 精细化分析(数据规模庞大)

l  数据分析的思维   —— 分析思维的培养(实战+借鉴)

l  通向更高的维度

1.3    开始用数据玩起来

你可能会疑惑:我什么都不会,你就让我玩起来?

不急,我们慢慢来解答。

题主可能没什么数据分析的基础,但至少你还会编程,这比起很多小白来说这是一个相当大的优势。当然你可能觉得应该循序渐进地看书学习,但无数人从入门到放弃的经验告诉我们,那个过程本身就是不人性化的,特别是对于碎片化的学习来说。

怎么开始用数据玩起来呢?

先找一个数据集,如果你工作中有一些现成的数据(用户数据、销售数据、产品数据等),是最好的,因为这些数据跟你的认知是高度相关的,能让你更加的有针对性。当然如果没有这样的数据资源的话,也可以找一些网上的公开数据集,推荐几个有公开数据集的网站。

UCI:加州大学欧文分校开放的经典数据集,真的很经典,被很多机器学习实验室采用,强烈建议前期数据集缺乏并且不想花太多时间去找的情况下用这里面的数据。

国家数据:数据来源于中国国家统计局,包含了我国经济民生等多个方面的数据。

CEIC:超过128个国家的经济数据,能够精确查找GDP, CPI, 进口,出口,外资直接投资,零售,销售,以及国际利率等深度数据。

中国统计信息网:国家统计局的官方网站,汇集了海量的全国各级政府各年度的国民经济和社会发展统计信息。

拿到这些数据,你就可以进行一些探索性的分析了。最常见的,就是把这些数据用可视化方式描述出来,最常见的就是 Excel,在把数据转化成图像的过程中,你就会发现一些数据分布的特点。

比如你拿到一个产品的销售数据,把数据按照时间序列绘制出图形,那就可以看到销量与时间、季节、特殊节点之间的关系;当你分地区来展示,你可以看到产品受不同地区用户的喜爱程度;当你把销售数据和其他的一些因素结合起来(比如推广行为),可以发现这些因素对销售量的影响。

你看,其实冰冷的数据在进行图形化的展示之后,我们可以发现很多基本的规律,这个已经可以得出一些很有用的知识了。

所以你看,其实你已经可以开始进行基本的数据分析了。当然如果你也不怎么熟悉 Excel 的话,去熟悉一些这些基本的图表的用法,我们经常用到的也基本是条形图、折线图(散点图)、扇形图。

觉得很简单是吧,当然可视化你还可以去了解用编程的方式去实现,比如 python里面的seaborn、matplotlib,R里面的ggplot2,这些都是很好的可视化工具(这对于题主来说应该是小case)。小白也不要以为很难,这个阶段你并不需要系统地去学习python或者R,只需要了解这些库的一些基本函数和用法就可以了。比如下面这些图,在python里面就是一行命令的事情。

网上有很多这些可视化工具的教程,跟着做很容易上手,主要是记住具体的函数、方法的使用方式,多联系一下就可以了。

当然不是让你瞎玩,画几个图虽然简单,但这还远远不够,在画图的过程中,你需要真正去做一些思考,从这些可视化的图表中,

你能够可能发现哪些规律,你可尝试输出一些简单的结论和报告。

1.4       好像少了点统计学知识

如果你用可视化的形式做了一些探索性的数据分析,那么你就会发现,得到的知识并不是那么多,那么,如何做更加精细化的分析呢?这个时候你需要补充一些统计学的知识了。

因为网上其实很少有系统的统计学的学习资料,这里更加推荐去看一些统计学方面的书籍。推荐书:深入浅出统计学 (豆瓣)

在具体的数据分析中,主要用到统计方面的以下知识,在看书的时候重点学习:

基本的统计量:均值、中位数、众数、方差、标准差、百分位数等;

概率分布:几何分布、二项分布、泊松分布、正态分布等;

总体和样本:了解基本概念,抽样的概念;

置信区间与假设检验:如何进行验证分析;

相关性与回归分析:一般数据分析的基本模型。

那通过基本的统计量,你可以进行更多元化的可视化,以实现更加精细化的数据分析,这个时候也需要你去了解更多的Excel函数来实现基本的计算,或者python、R里面一些对应的可视化方法。

有了总体和样本的概念,你就知道在面对大规模数据的时候,怎样去进行抽样分析。

你也可以应用假设检验的方法,对一些感性的假设做出更加精确地检验。

利用回归分析的方法,你可以对未来的一些数据、缺失的数据做基本的预测。

了解统计学的原理之后,你不一定能够通过工具实现,那么你需要去对应的找网上找相关的实现方法。也可以看书,先推荐一本非常简单的:深入浅出数据分析 (豆瓣)。

1.5       数据不干净怎么办

很多时候我们拿到的数据是不干净的,数据的重复、缺失、异常值等等,这时候就需要进行数据的清洗,把这些影响分析的数据处理好,才能获得更加精确地分析结果。

比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的。比如用户行为数据,有很多无效的操作对分析没有意义,就需要进行删除。

那么我们需要用相应的方法去处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全,这些都是需要考虑的问题。

对于数据预处理,学会pandas 的用法,应对一般的数据清洗就完全没问题了。需要掌握的知识点如下:

选择:数据访问(标签、特定值、布尔索引等)

缺失值处理:对缺失数据行进行删除或填充

重复值处理:重复值的判断与删除

空格和异常值处理:清楚不必要的空格和极端、异常数据

相关操作:描述性统计、Apply、直方图等

合并:符合各种逻辑关系的合并操作

分组:数据划分、分别执行函数、数据重组

Reshaping:快速生成数据透视表

网上有很多pandas的教程,主要是一些函数的应用,也都非常简单,如果遇到问题,可以参看pandas操作的官方文档

1.6       握草,Python大法流弊

通过pandas,你可能已经意识到,python真实一个神奇的东西。

但除了pandas,python还有其他优秀的数据分析、数据挖掘的库,比如numpy、scipy、scikit-learn,那你可以去找一些教程来看看如何通过这些库实现数据分析,先搞清楚那些最常用的方法,并结合实际的数据集进行练习。那些并不常用的方法,可以等到在遇到具体的问题的时候再去查阅相关的文档。

比如利用numpy进行数组的计算,利用scipy实现不同的假设检验,利用scikit-learn实现完整的数据分析建模……这些网上有很多可以学习的教程,当然也可以去看书,推荐一本:

利用Python进行数据分析 (豆瓣)

当然前期并不建议你去追求各种高深的技巧,你更需要去熟悉最基本的用法,毕竟基本的才是最常用到的,常用的方法已经可以帮助你解决绝大部分初级阶段的数据分析问题了。

比如利用回归分析(线性回归、逻辑回归),你就可以去实现很多的预测型的数据分析,对未来的数据进行预测。

题主python这部分应该没问题了,只需要去了解相关的库即可。当然,如果是小白,还需要去了解一些python的基础知识,比如变量、基本元素等,如果你对python无感,那么R语言也完全可以帮助你解决数据分析问题。

1.7       用SQL打开新世界的大门

在应对万以内的数据的时候,Excel对于一般的分析没有问题,一旦数据量大,就会力不从心,打开文件都会是个问题,数据库就能够很好地解。而且大多数的企业,都会以SQL的形式来存储数据,如果你是一个分析师,也需要懂得SQL的操作,能够查询、提取数据。

SQL作为最经典的数据库工具,为海量数据的存储与管理提供可能,并且使数据的提取的效率大大提升。你需要掌握以下技能:

l 提取特定情况下的数据:企业数据库里的数据一定是大而繁复的,你需要提取你需要的那一部分。比如你可以根据你的需要提取2017年所有的销售数据、提取今年销量最大的50件商品的数据、提取上海、广东地区用户的消费数据……,SQL可以通过简单的命令帮你完成这些工作。

l 数据库的增、删、查、改:这些是数据库最基本的操作,但只要用简单的命令就能够实现,所以你只需要记住命令就好。

l 数据的分组聚合、如何建立多个表之间的联系:这个部分是SQL的进阶操作,多个表之间的关联,在你处理多维度、多个数据集的时候非常有用,这也让你可以去处理更复杂的数据。

SQL这个部分相对来说比较简单,可以去这个教程:MySQL-菜鸟教程

当然如果你一直面对的是不那么大的数据,或者pandas等工具已经够你用了,那你也可以暂时不了解SQL这一块相对独立的知识。

1.8       数据分析思维

如果你对业务本身有一定了解,那么你可能在数据思维的养成方面会更加有优势,你会知道哪些因素、哪些数据是相对重要的,那么你可以在分析中更加容易地找出重要的问题,也能够更清楚应该从哪些方面入手,这就是问题定义的过程。这是数据分析的第一个步骤,但往往要经过很多的实战训练才能养成。

开始的时候,你可能考虑的问题不是很周全,但随着你经验的积累,慢慢就会找到分析的方向,有哪些一般分析的维度,比如top榜单、平均水平、区域分布、年龄分布、相关性分析、未来趋势预测等等。随着经验的增加,你会有一些自己对于数据的感觉,这就是我们通常说的数据思维了。

你也可以看看行业的分析报告,推荐:艾瑞咨询

看看优秀的分析师看待问题的角度和分析问题的维度,你也可以去参考优秀数据分析师的一些思考维度去进行分析,总结的多了,你会发现,其实这并不是一件困难的事情。

如果你想去获取互联网的一些数据,也可以学学爬虫的一些技能,基于互联网的数据,可以做很多的市场调研和舆情分析。

1.9       通向更高的维度

如果你并不满足做基础的数据分析,甚至想做一些数据挖掘、机器学习的事情,那么你还需要学习更多的知识。了解更高级的数据挖掘算法,比如决策树、随机森林、支持向量机、神经网络等等,光了解算法还不够,你还需要知道如何进行模型的优化,如何通过特征工程、模型融合提升预测的精确度。

这就有点数据挖掘和机器学习的味道了。当然你可以根据你的职业发展来选择具体的方向

1)如果你在编程、算法上面比较有兴趣,那么你可以向更深入的机器学习方向发展;

2)如果你更想往业务方向靠拢,以数据分析来支撑商业决策,那么你可以深化这方面的能力,甚至去考虑做一些自动化分析的事情。

1.10       总结

总的来说,学习的动力源于反馈,在碎片化学习的时候,尤其注意,你的每个学习过程都应该是有具体的目的导向的,你也需要考虑,学习这个知识点,最终想输出的东西是什么。每个阶段只学习最需要的那部分知识,这样可以很大程度上地提升学习效率。

猜你喜欢

转载自blog.csdn.net/captain811/article/details/82021086