数据分析

  • 一、数据分析——基础
  • 1.什么是数据分析
  • 1.1数据分析的概念
  • 1.2数据分析的应用
  • 1.3数据分析方法
  • 1.3.1对比分析
  • 1.3.2同比分析
  • 1.3.3环比分析
  • 1.3.4 80/20分析
  • 1.3.5 回归分析
  • 1.3.6 聚类分析
  • 1.3.7时间序列分析
  • 1.4数据分析工具
  • 1.5数据分析流程
  • 二、数据分析——numpy
  • 2.1numpy概述
  • 2.1.1numpy介绍
  • 2.2数据预处理
  • 2.2.1数据读写
  • 2.2.1.1数据存储
  • 2.2.1.ndarray数组对象
  • 2.2.1.3ndarry与标量之间的运算
  • 2.2.1.4数据读取
  • 2.2.2数据筛选
  • 2.2.2.1解决数据不完整 ——>数据组合
  • 2.2.2.2解决数据冗余 ——>数据截取
  • 2.2.2.3解决数据冗余——> 去除数据集中重复的数据
  • 2.2.3数据清洗
  • 2.2.3.1数据删除
  • 2.2.3.2条件查找
  • 2.3科学计算
  • 2.3.1科学计算概述
  • 2.3.2计算函数
  • 2.3.3矩阵乘法
  • 2.3.4矩阵其他计算函数
  • 2.4生成数据集
  • 2.4.1数据集生成概述
  • 2.4.2Random函数
  • 2.4.3linspace函数
  • 2.5扩展
  • 2.5.1改变数组的维度
  • 2.5.2保存文件
  • 2.5.3数组的排序
  • 2.5.4数组的分割
  • 2.5.5 数组迭代
  • 三、数据分析——pandas
  • 3.1pandas概述
  • 3.2数据读写
  • 3.2.1数据读写概述
  • 3.2.2 数据读取
  • 3.2.3 写入文件csv
  • 3.2.4数据库数据的读写
  • 3.2.4.1 数据库读取概述
  • 3.2.4.2 数据库写入
  • 3.2.4.3 数据库读取
  • 3.3数据结构
  • 3.3.1 Series对象
  • 3.3.2 Series对象概述
  • 3.3.2 DataFrame对象
  • 3.3.2.1 DataFrame对象概述
  • 3.3.2.2 DataFrame数组对象创建
  • 3.3.2.3 DataFrame常用属性
  • 3.3pandas数据预处理
  • 3.3.1pandas数据增加、删除、修改
  • 3.3.1.1 数据查找
  • 3.3.1.2 数据删除
  • 3.3.1.3 数据的添加
  • 3.3.1.4 数据的修改和查找
  • 3.3.1.5 数据的合并
  • 3.3.2pandas数据清洗
  • 3.3.3pandas数据转换

  • 四、数据分析——Matplotlib
  • 五、数据分析——统计分析方法
  • 六、数据分析——scikit-learn


一、数据分析——基础

1.什么是数据分析

1.1数据分析的概念

  • 数据分析就是利用数学、统计学理论相结合科学统计分析方法数据库中的数据、Excel数据、收集的大量数据、网页抓取的数据进行分析,从中提取有价值的信息形成结论并进行展示的过程。
  • 数据分析的目的在于将隐藏在一大堆看似杂乱无章的数据背后,将有用的信息提取出来,总结出数据的内在规律,以帮助在实际工作中的管理者做出决策和判断

1.2数据分析的应用

  • 互联网行业
    通过数据分析可以根据客户意向进行商品推荐以及针对性广告等。例如,我们熟悉的淘宝
  • 医学方面
    智能医疗、健康指数评估以及DNA对比等。
    例如,我们熟悉的手环、体脂称
  • 网络安全方面
    通过数据分析建立一个潜在攻击性分析模型,监测大量的网络访问数据与访问行为,可以快速识别出可疑网络的访问,起到有效的防御作用
  • 交通方面
    根据交通状况数据与GPS定位系统有效的预测交通实时路况信息
  • 通信方面
    数据分析可以统计骚扰电话进行骚扰电话的拦截与黑名单的设置
  • 个人生活
    数据分析可以对个人喜好、生活习惯等进行分类,为其提供更加周到的个性化服务

1.3数据分析方法

数据分析是从数据中提取有价值信息的过程,过程中需要对数据进行各种处理和归类,只有掌握了正确的数据分析方法,才能起到事半功倍的效。

数据分析VBA 数据分析课_数据挖掘

  • 统计分析类:对比分析法、同比分析、环比分析、定比分析、差异分析、结构分析、因素分析、80/20分析
  • 高级分析类:回归分析法、聚类分析法、相关分析法、矩阵分析法、判别分析法、主成分分析法、因子分析法、对应分析法、时间序列分析
  • 数据挖掘类:机器学习、数据仓库等复合技术为主。
1.3.1对比分析

对比分析法是把客观事物加以比较,以达到认识事物的本质和规律并做出正确的评价。对比分析法通常是把两个相互联系的指标数据进行比较,从数量上展示和说明研究对象规模的大小,水平的高低,速度的快慢,以及各种关系是否协调。

数据分析VBA 数据分析课_数据_02

1.3.2同比分析
  • 同比分析就是按照时间如年度、季度、月份、日期等进行扩展,用本期实际发生数与同期历史发生数相比,产生动态相对指标,用以揭示发展水平以及增长速度。
  • 同比分析主要是为了消除季节变动的影响,用以说明本期水平与去年同期水平对比而达到的相对值。
1.3.3环比分析

环比分析是报告期水平与前一时期水平之比,表明现象逐期的变化趋势。如果计算一年内各月与前一个月对比,即1月比去年12月,2月比1月,3月比2月,4月比3月,5月比4月,6月比5月,说明逐月的变化程度,如图1所示,环比增长趋势如图2所示

数据分析VBA 数据分析课_数据_03

1.3.4 80/20分析

80/20分析,又称二八法则、帕累托法则、帕累托定律、最省力法则或不平衡原则。该法则是由意大利经济学家帕累托提出的。二八法则认为:原因和结果、投入和产出、努力和报酬之间本来存在着无法解释的不平衡。

数据分析VBA 数据分析课_数据分析_04

1.3.5 回归分析

回归分析多用于统计分析和预测。它是研究变量之间相关关系以及相互影响程度,通过建立自变量和因变量的方程,研究某个因素受其他因素影响的程度或用来预测。回归分析包括:线性和非线性回归、一元和多元回归。常用的回归是一元线性回归和多元线性回归

数据分析VBA 数据分析课_数据_05

1.3.6 聚类分析

聚类分析多用于人群分类,客户分类。所谓聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程

数据分析VBA 数据分析课_big data_06

1.3.7时间序列分析

时间序列分析多用于统计和预测。它是按照时间的顺序把随机事件变化发展的过程记录下来,就构成了一个时间序列。时间序列分析就是对时间序列进行观察、研究、找出它的变化和发展规律,预测将来的走势

数据分析VBA 数据分析课_数据分析VBA_07

1.4数据分析工具

数据分析师要求前3的主要技能是:SQL、Python、Excel

数据分析VBA 数据分析课_数据挖掘_08

  • Excel是常用的数据分析工具,可以实现基本的数据分析工作,但在数据量较大,公式嵌套很多的情况下,Excel处理起来会很麻烦而且处理速度也会变慢。此时,Python可作为首选,因为Python提供了大量的第三方扩展库,如Numpy、Scipy、Matplotlib、Pandas、Scikit-Learn、Keras和Gensim等,这些库不仅可以对数据进行处理、挖掘、可视化展示,其自带的分析方法模型也使得数据分析变得简单高效,只需编写少量的代码就可以得到分析结果。

1.5数据分析流程

数据分析VBA 数据分析课_数据_09

二、数据分析——numpy

2.1numpy概述

2.1.1numpy介绍

  • numpy=Numeric Python
  • 用Python进行科学(数值)计算的基础库
  • 拥有快速高效的数组
  • 提供高性能数组

2.2数据预处理

2.2.1数据读写

2.2.1.1数据存储

  • ndarray=n-dimensional array object
  • Numpy用于存储单一数据类型的数组对象
  • 为什么不用Python的数据类型(如列表、字典)存储数据?
  • 数据分析VBA 数据分析课_数据_10


2.2.1.ndarray数组对象

  • ndarray 是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。
  • ndarray 的一个特点是同构:即其中所有元素的类型必须相同。
  • ndarray数据类型
  • 数据分析VBA 数据分析课_数据_11


  • 数组对象的创建:
  • 数据分析VBA 数据分析课_数据挖掘_12


  • ndarray的属性:
  • 数据分析VBA 数据分析课_数据_13


2.2.1.3ndarry与标量之间的运算

  • arr=np.array()
  • arr*arr
  • arr-arr
  • 1/arr
  • arr*5
  • 例如:
  • 数据分析VBA 数据分析课_数据分析_14

  • 运算结果:
  • 数据分析VBA 数据分析课_数据分析_15


2.2.1.4数据读取

import numpy as np
data=np.loadtxt("BeijingPM2.5.csv",delimiter=",",skiprows=1,dtype=float)

数据分析VBA 数据分析课_数据挖掘_16

2.2.2数据筛选

原始样本数据可能出现的问题:

  1. 数据不完整
  2. 属性冗余
  3. 数据重复

2.2.2.1解决数据不完整 ——>数据组合

有些数据是分布在不同文件中的,需要垂直组合到一起:

数据分析VBA 数据分析课_数据分析VBA_17

  • 方法1:np.vstack((data1,data2))
  • 方法2:np.row_stack((data1,data2))

有些数据的特征分布在不同文件中,需要水平组合到一起:

数据分析VBA 数据分析课_数据_18

  • 方法1:np.hstack((data1,data2))
  • 方法2:np.column_stack((data1,data2))

2.2.2.2解决数据冗余 ——>数据截取

  • 索引
    确定元素的位置
    行,列使用逗号间隔

  • 例一:获取第1行数据
  • 数据分析VBA 数据分析课_数据分析VBA_19

  • 例二:获取第3-5行数据
  • 数据分析VBA 数据分析课_big data_20

  • 例三:获取第4行第5列数据
  • 数据分析VBA 数据分析课_数据挖掘_21

  • 切片
    抽取某个范围内的数据;
    起止位置用冒号隔开

  • 例一:获取前三行数据

数据分析VBA 数据分析课_数据分析_22

  • 例二:获取第2-4行,3-5列的数据
  • 数据分析VBA 数据分析课_big data_23


  • 例三:获取2-5列数据
  • 数据分析VBA 数据分析课_big data_24


2.2.2.3解决数据冗余——> 去除数据集中重复的数据

数据分析VBA 数据分析课_数据挖掘_25

  • 删除重复的行:
    data = np.unique(data,axis=0)
  • 数据分析VBA 数据分析课_数据分析_26


  • 删除重复的列:
    data = np.unique(data,axis=1)
  • 数据分析VBA 数据分析课_数据_27


2.2.3数据清洗

2.2.3.1数据删除

  • 删除任意的行和列:
  • 数据分析VBA 数据分析课_数据_28


2.2.3.2条件查找

数据分析VBA 数据分析课_数据分析_29

2.3科学计算

2.3.1科学计算概述

数据分析VBA 数据分析课_数据分析_30

2.3.2计算函数

数据分析VBA 数据分析课_big data_31

2.3.3矩阵乘法

数据分析VBA 数据分析课_数据分析_32

数据分析VBA 数据分析课_数据分析VBA_33

  • 例子:
  • 数据分析VBA 数据分析课_数据分析VBA_34


2.3.4矩阵其他计算函数

数据分析VBA 数据分析课_数据分析_35

2.4生成数据集

2.4.1数据集生成概述

数据分析VBA 数据分析课_big data_36

2.4.2Random函数

数据分析VBA 数据分析课_数据_37

  • 例子:
  • 数据分析VBA 数据分析课_数据分析VBA_38


  • 数据分析VBA 数据分析课_数据挖掘_39


2.4.3linspace函数

数据分析VBA 数据分析课_big data_40

  • 例:
  • 数据分析VBA 数据分析课_数据挖掘_41


2.5扩展

2.5.1改变数组的维度

数据分析VBA 数据分析课_数据_42

2.5.2保存文件

数据分析VBA 数据分析课_数据_43

2.5.3数组的排序

数据分析VBA 数据分析课_数据_44

2.5.4数组的分割

数据分析VBA 数据分析课_数据分析VBA_45

2.5.5 数组迭代

数据分析VBA 数据分析课_数据_46

三、数据分析——pandas

3.1pandas概述

  • Pandas = Python Data Analysis Library
  • 基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建
  • 一个强大的Python数据分析的工具包
  • 提供了大量能使我们快速便捷地处理数据的函数和方法

3.2数据读写

3.2.1数据读写概述

数据分析VBA 数据分析课_数据分析VBA_47

3.2.2 数据读取

  • 例:读取xls
  • 数据分析VBA 数据分析课_数据挖掘_48


  • 例:读取csv
  • 数据分析VBA 数据分析课_数据分析VBA_49


  • 数据分析VBA 数据分析课_数据分析VBA_50


3.2.3 写入文件csv

数据分析VBA 数据分析课_数据分析_51


数据分析VBA 数据分析课_数据分析_52

3.2.4数据库数据的读写

3.2.4.1 数据库读取概述

数据分析VBA 数据分析课_big data_53

3.2.4.2 数据库写入

数据分析VBA 数据分析课_数据挖掘_54

3.2.4.3 数据库读取

数据分析VBA 数据分析课_数据分析VBA_55


数据分析VBA 数据分析课_数据分析VBA_56

3.3数据结构

3.3.1 Series对象

3.3.2 Series对象概述

数据分析VBA 数据分析课_数据分析_57

3.3.2 DataFrame对象

3.3.2.1 DataFrame对象概述

数据分析VBA 数据分析课_big data_58

3.3.2.2 DataFrame数组对象创建

数据分析VBA 数据分析课_数据挖掘_59

3.3.2.3 DataFrame常用属性

数据分析VBA 数据分析课_数据挖掘_60

3.3pandas数据预处理

3.3.1pandas数据增加、删除、修改

3.3.1.1 数据查找

  • 使用字典访问key
  • 使用切片loc
  • 使用表达式

3.3.1.2 数据删除

  • 使用drop方法
  • 数据分析VBA 数据分析课_数据_61


3.3.1.3 数据的添加

  • 新建列索引

3.3.1.4 数据的修改和查找

数据分析VBA 数据分析课_数据_62

3.3.1.5 数据的合并

数据分析VBA 数据分析课_big data_63

3.3.2pandas数据清洗

3.3.3pandas数据转换

四、数据分析——Matplotlib五、数据分析——统计分析方法六、数据分析——scikit-learn