1.1数据分析的概念
- 数据分析就是利用数学、统计学理论相结合科学统计分析方法对数据库中的数据、Excel数据、收集的大量数据、网页抓取的数据进行分析,从中提取有价值的信息形成结论并进行展示的过程。
- 数据分析的目的在于将隐藏在一大堆看似杂乱无章的数据背后,将有用的信息提取出来,总结出数据的内在规律,以帮助在实际工作中的管理者做出决策和判断。
1.2数据分析的应用
- 互联网行业 通过数据分析可以根据客户意向进行商品推荐以及针对性广告等。例如,我们熟悉的淘宝
- 医学方面 智能医疗、健康指数评估以及DNA对比等。 例如,我们熟悉的手环、体脂称
- 网络安全方面 通过数据分析建立一个潜在攻击性的分析模型,监测大量的网络访问数据与访问行为,可以快速识别出可疑网络的访问,起到有效的防御作用
- 交通方面 根据交通状况数据与GPS定位系统有效的预测交通实时路况信息
- 通信方面 数据分析可以统计骚扰电话进行骚扰电话的拦截与黑名单的设置
- 个人生活 数据分析可以对个人喜好、生活习惯等进行分类,为其提供更加周到的个性化服务
1.3数据分析方法
数据分析是从数据中提取有价值信息的过程,过程中需要对数据进行各种处理和归类,只有掌握了正确的数据分析方法,才能起到事半功倍的效。
- 统计分析类:对比分析法、同比分析、环比分析、定比分析、差异分析、结构分析、因素分析、80/20分析
- 高级分析类:回归分析法、聚类分析法、相关分析法、矩阵分析法、判别分析法、主成分分析法、因子分析法、对应分析法、时间序列分析
- 数据挖掘类:机器学习、数据仓库等复合技术为主。
1.3.1对比分析
对比分析法是把客观事物加以比较,以达到认识事物的本质和规律并做出正确的评价。对比分析法通常是把两个相互联系的指标数据进行比较,从数量上展示和说明研究对象规模的大小,水平的高低,速度的快慢,以及各种关系是否协调。
1.3.2同比分析
- 同比分析就是按照时间如年度、季度、月份、日期等进行扩展,用本期实际发生数与同期历史发生数相比,产生动态相对指标,用以揭示发展水平以及增长速度。
- 同比分析主要是为了消除季节变动的影响,用以说明本期水平与去年同期水平对比而达到的相对值。
1.3.3环比分析
环比分析是报告期水平与前一时期水平之比,表明现象逐期的变化趋势。如果计算一年内各月与前一个月对比,即1月比去年12月,2月比1月,3月比2月,4月比3月,5月比4月,6月比5月,说明逐月的变化程度,如图1所示,环比增长趋势如图2所示
1.3.4 80/20分析
80/20分析,又称二八法则、帕累托法则、帕累托定律、最省力法则或不平衡原则。该法则是由意大利经济学家帕累托提出的。二八法则认为:原因和结果、投入和产出、努力和报酬之间本来存在着无法解释的不平衡。
1.3.5 回归分析
回归分析多用于统计分析和预测。它是研究变量之间相关关系以及相互影响程度,通过建立自变量和因变量的方程,研究某个因素受其他因素影响的程度或用来预测。回归分析包括:线性和非线性回归、一元和多元回归。常用的回归是一元线性回归和多元线性回归
1.3.6 聚类分析
聚类分析多用于人群分类,客户分类。所谓聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程
1.3.7时间序列分析
时间序列分析多用于统计和预测。它是按照时间的顺序把随机事件变化发展的过程记录下来,就构成了一个时间序列。时间序列分析就是对时间序列进行观察、研究、找出它的变化和发展规律,预测将来的走势
1.4数据分析工具
数据分析师要求前3的主要技能是:SQL、Python、Excel。
- Excel是常用的数据分析工具,可以实现基本的数据分析工作,但在数据量较大,公式嵌套很多的情况下,Excel处理起来会很麻烦而且处理速度也会变慢。此时,Python可作为首选,因为Python提供了大量的第三方扩展库,如Numpy、Scipy、Matplotlib、Pandas、Scikit-Learn、Keras和Gensim等,这些库不仅可以对数据进行处理、挖掘、可视化展示,其自带的分析方法模型也使得数据分析变得简单高效,只需编写少量的代码就可以得到分析结果。
1.5数据分析流程
2.1.1numpy介绍
- numpy=Numeric Python
- 用Python进行科学(数值)计算的基础库
- 拥有快速高效的数组
- 提供高性能数组
2.2.1数据读写
2.2.1.1数据存储
- ndarray=n-dimensional array object
- Numpy用于存储单一数据类型的数组对象
- 为什么不用Python的数据类型(如列表、字典)存储数据?
2.2.1.ndarray数组对象
- ndarray 是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。
- ndarray 的一个特点是同构:即其中所有元素的类型必须相同。
- ndarray数据类型:
- 数组对象的创建:
- ndarray的属性:
2.2.1.3ndarry与标量之间的运算
- arr=np.array()
- arr*arr
- arr-arr
- 1/arr
- arr*5
- 例如: 运算结果:
2.2.1.4数据读取
2.2.2数据筛选
原始样本数据可能出现的问题:
- 数据不完整
- 属性冗余
- 数据重复
2.2.2.1解决数据不完整 ——>数据组合
有些数据是分布在不同文件中的,需要垂直组合到一起:
- 方法1:np.vstack((data1,data2))
- 方法2:np.row_stack((data1,data2))
有些数据的特征分布在不同文件中,需要水平组合到一起:
- 方法1:np.hstack((data1,data2))
- 方法2:np.column_stack((data1,data2))
2.2.2.2解决数据冗余 ——>数据截取
-
索引: 确定元素的位置; 行,列使用逗号间隔;
-
例一:获取第1行数据
-
例二:获取第3-5行数据
-
例三:获取第4行第5列数据
-
切片: 抽取某个范围内的数据; 起止位置用冒号隔开;
-
例一:获取前三行数据
- 例二:获取第2-4行,3-5列的数据
- 例三:获取2-5列数据
2.2.2.3解决数据冗余——> 去除数据集中重复的数据
- 删除重复的行: data = np.unique(data,axis=0)
- 删除重复的列: data = np.unique(data,axis=1)
2.2.3数据清洗
2.2.3.1数据删除
- 删除任意的行和列:
2.2.3.2条件查找
2.3.1科学计算概述
2.3.2计算函数
2.3.3矩阵乘法
- 例子:
2.3.4矩阵其他计算函数
2.4.1数据集生成概述
2.4.2Random函数
- 例子:
2.4.3linspace函数
- 例:
2.5.1改变数组的维度
2.5.2保存文件
2.5.3数组的排序
2.5.4数组的分割
2.5.5 数组迭代
- Pandas = Python Data Analysis Library
- 基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建
- 一个强大的Python数据分析的工具包
- 提供了大量能使我们快速便捷地处理数据的函数和方法
3.2.1数据读写概述
3.2.2 数据读取
- 例:读取xls
- 例:读取csv
3.2.3 写入文件csv
3.2.4数据库数据的读写
3.2.4.1 数据库读取概述
3.2.4.2 数据库写入
3.2.4.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.3.1pandas数据增加、删除、修改
3.3.1.1 数据查找
- 使用字典访问key
- 使用切片loc
- 使用表达式
3.3.1.2 数据删除
- 使用drop方法
3.3.1.3 数据的添加
- 新建列索引