Python 现如今已成为数据分析和数据科学使用上的标准语言和标准平台之一。那么作为一个新手小白,该如何快速入门 Python 数据分析呢?
下面根据数据分析的一般工作流程,梳理了相关知识技能以及学习指南。
数据分析一般工作流程如下:
- 数据采集
- 数据存储与提取
- 数据清洁及预处理
- 数据建模与分析
- 数据可视化
1. 数据采集
数据来源分为内部数据和外部数据,内部数据主要是企业数据库里的数据,外部数据主要是下载一些公开数据取或利用网络爬虫获取。(如果数据分析仅对内部数据做处理,那么这个步骤可以忽略。)
公开的数据集我们直接下载即可,所以这部分的重点知识内容是网络爬虫。那么我们必须掌握的技能有 Python 基础语法、如何编写 Python 爬虫。
Python 基础语法:掌握元素(列表、字典、元组等)、变量、循环、函数等基础知识,达到能够熟练编写代码,至少不能出现语法错误。
Python 爬虫内容:掌握如何使用成熟的 Python 库(如 urllib、BeautifulSoup、requests、scrapy)实现网络爬虫。
大部分的网站都有自己的反爬机制,所以还需要学习一些技巧去应对不同网站的反爬策略。主要包括:正则表达式、模拟用户登录、使用代理、设置爬取频率、使用 cookie 信息等等。
推荐资源:
- Python3 简明教程
- 笨办法学 Python 3 (豆瓣)
- 使用 Python 批量爬取网站信息
2. 数据存储与提取
提到数据存储,数据库肯定是跑不掉的。SQL 语言作为数据库最基础的工具,必须掌握!常见的关系数据库和非关系数据库也需要有所了解的。
SQL 语言 : 最基本的四大操作,增删改查 。需烂熟于心,超级熟练!在分析过程中经常需要提取一些指定数据,所以能够 编写 sql 语句去提取特定数据 也是必备技能。在处理一些复杂数据的时候,还会涉及到 数据的分组聚合、建立多个表之间的联系,这个也要掌握。
MySQL和MongoDB:掌握 MySQL 和 MongoDB 的基础使用,并且了解两个数据库的区别。只要学会了这两个数据库,其他的数据库在此基础上都能快速上手,轻松玩转。
推荐资源:
- MySQL 基础课程
- MongoDB 基础教程
3. 数据清洁及预处理
往往拿到的数据是不干净的,存在数据的重复、缺失、异常值等等。这个时候我们就需要对数据进行清洁及预处理,解决掉干扰因素,才能更加精准地分析结果。
对于数据预处理,我们主要利用 Python 的 Pandas 库进行。
Pandas:用于数据处理的程序库,不仅提供了丰富的数据结构,同时为处理数据表和时间序列提供了相应的函数。主要掌握 选择、缺失值处理、重复值处理、空格和异常值处理、相关操作、合并、分组 等。
推荐资源:
- Pandas 数据处理基础课程
- Pandas 百题大冲关
- Tutorials – pandas 0.25.1 documentation
- 利用 Python 进行数据分析 (豆瓣)
4. 数据建模与分析
数据分析的重头戏,这部分已经不是单纯的处理数据了,需要掌握一定的数学概率知识和机器学习相关内容。
概率论及统计学知识:基本统计量(均值、中位数、众数等)、描述性统计量(方差、标准差等)、统计知识(总体和样本、参数和统计量等)、概率分布与假设检验(各种分布、假设检验流程)、条件概率、贝叶斯等其他概率论知识。
机器学习:掌握常用的机器学习分类、回归、聚类算法和原理,了解特征工程基础、调参方法以及 Python 数据分析包 scipy、numpy、scikit-learn 等。并且能够选择一种算法模型对数据进行相应的分析,并得出分析结论。
- NumPy:一个通用程序库,不仅支持常用的数值数组,同时提供了用于高效处理这些数组的函数。
- SciPy:Python 的科学计算库,对 NumPy 的功能进行了大量扩充,同时也有部分功能是重合的。Numpy 和 SciPy 曾经共享基础代码,后来分道扬镳了。
随着项目实践量的不断增加,会逐渐了解到针对不同类型的问题该如何去选择算法模型,并且了解到如何通过特征提取、参数调节来提升预测到精度。
推荐资源:
- 深入浅出统计学 (豆瓣)
- 统计学习方法(第 2 版)(豆瓣)
- NumPy 数值计算基础课程
- NumPy 百题大冲关
- SciPy 科学计算基础课程
5. 数据可视化
数据可视化,这部分主要依赖于 Python 的 Matplotlib 和 Seaborn。根据以上的分析结果数据,进行可视化的展示,输出分析报告。
- Matplotlib:一个 2D 绘图库,在绘制图形和图像方面提供了良好的支持。当前,Matplotlib 已经并入 SciPy 中并支持 NumPy。
- Seaborn:基于 matplotlib 的图形可视化 python 包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表
推荐资源:
- Matplotlib 数据绘图基础课程
遵照以上指南,循序渐进的完成学习,基本上是可以达到初级数据分析师的要求。但是千万不要忘记了,掌握基本技能之后,还要多加练习,重视实战才能更好的提升技能。
下面推荐一些项目案例:
- 中国保险行业过去五年基础数据分析
- 杭州互联网寒冬背景下的数据分析岗现状分析
- 链家成都市区挂牌二手房分析
- B 站番剧数据简单分析
项目案例来自实验楼《楼 + 数据分析与挖掘实战》的学员。