Python 现如今已成为数据分析和数据科学使用上的标准语言和标准平台之一。那么作为一个新手小白,该如何快速入门 Python 数据分析呢?
下面根据数据分析的一般工作流程,梳理了相关知识技能以及学习指南。
数据分析一般工作流程如下:
- 数据采集
- 数据存储与提取
- 数据清洁与预处理
- 数据建模与分析
- 数据可视化
1.数据采集
数据来源分为内部数据和外部数据,内部数据主要是企业数据库里的数据,外部数据主要是下载一些公开数据取或利用网络爬虫获取。(如果数据分析仅对内部数据做处理,那么这个步骤可以忽略。)
公开的数据集我们直接下载即可,所以这部分的重点知识内容是网络爬虫。那么我们必须掌握的技能:Python 基础语法、Python 爬虫的编写。
Python 基础语法:掌握元素(列表、字典、元组等)、变量、循环、函数等基础知识,达到能够熟练编写代码,至少不能出现语法错误。
Python 爬虫内容:掌握如何使用成熟等 Python 库(如urllib、BeautifulSoup、requests、scrapy)实现网络爬虫。
由于大部分的网站都有自己的反爬机制,所以我们还需要学习一些技巧去应对不同网站的反爬策略。主要包括:正则表达式、模拟用户登录、使用代理、设置爬取频率、使用cookie信息等等。
推荐资源:
- Python3 简明教程
- 笨办法学Python3
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曾经共享基础代码,后来分道扬镳了。
推荐资源:
- 深入浅出统计学
- 统计学习方法
- NumPy 数值计算基础
- NumPy 百题大冲关
- SciPy 科学计算基础
5. 数据可视化
数据可视化,这部分主要依赖于 Python 的 Matplotlib 和 Seaborn。
- Matplotlib:一个2D绘图库,在绘制图形和图像方面提供了良好的支持。当前,Matplotlib已经并入SciPy中并支持NumPy。
- Seaborn: 基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表
推荐资源:
- Matplotlib 数据绘图基础
根据以上内容,循序渐进的完成学习,基本上是可以达到初级数据分析师的要求。但是千万不要忘记了,掌握基本技能之后,还要多加练习,重视实战才能更好的提升技能。
下面推荐一些还不错的项目案例:
- 中国保险行业过去五年基础数据分析
- 杭州互联网寒冬背景下的数据分析岗现状分析
- 基于京东手机销售数据用回归决策树预测价格
以上案例都来自与实验楼《楼+ 数据分析与挖掘实战》课程学员。