Python数据分析基础教程(python大数据处理与分析)
python数据分析该怎么入门呢?
1.为什么选择Python进行数据分析?
Python是一门动态的、面向对象的脚本语言,同时也是一门简约,通俗易懂的编程语言。Python入门简单,代码可读性强,一段好的Python代码,阅读起来像是在读一篇外语文章。Python这种特性称为“伪代码”,它可以使你只关心完成什么样的工作任务,而不是纠结于Python的语法。
另外,Python是开源的,它拥有非常多优秀的库,可以用于数据分析及其他领域。更重要的是,Python与最受欢迎的开源大数据平台Hadoop具有很好的兼容性。因此,学习Python对于有志于向大数据分析岗位发展的数据分析师来说,是一件非常节省学习成本的事。
Python的众多优点让它成为最受欢迎的程序设计语言之一,国内外许多公司也已经在使用Python,例YouTube,Google,阿里云等等。
3.数据分析流程
Python是数据分析利器,掌握了Python的编程基础后,就可以逐渐进入数据分析的奇妙世界。CDA数据分析师认为一个完整的数据分析项目大致可分为以下五个流程:
1)数据获取
一般有数据分析师岗位需求的公司都会有自己的数据库,数据分析师可以通过SQL查询语句来获取数据库中想要数据。Python已经具有连接sql server、mysql、orcale等主流数据库的接口包,比如pymssql、pymysql、cx_Oracle等。
而获取外部数据主要有两种获取方式,一种是获取国内一些网站上公开的数据资料,例如国家统计局;一种是通过编写爬虫代码自动爬取数据。如果希望使用Python爬虫来获取数据,我们可以使用以下Python工具:
Requests-主要用于爬取数据时发出请求操作。
BeautifulSoup-用于爬取数据时读取XML和HTML类型的数据,解析为对象进而处理。
Scapy-一个处理交互式数据的包,可以解码大部分网络协议的数据包
2)数据存储
对于数据量不大的项目,可以使用excel来进行存储和处理,但对于数据量过万的项目,使用数据库来存储与管理会更高效便捷。
3)数据预处理
数据预处理也称数据清洗。大多数情况下,我们拿到手的数据是格式不一致,存在异常值、缺失值等问题的,而不同项目数据预处理步骤的方法也不一样。CDA数据分析师认为数据分析有80%的工作都在处理数据。如果选择Python作为数据清洗的工具的话,我们可以使用Numpy和Pandas这两个工具库:
Numpy - 用于Python中的科学计算。它非常适用于与线性代数,傅里叶变换和随机数相关的运算。它可以很好地处理多维数据,并兼容各种数据库。
Pandas –Pandas是基于Numpy扩展而来的,可以提供一系列函数来处理数据结构和运算,如时间序列等。
4)建模与分析
这一阶段首先要清楚数据的结构,结合项目需求来选取模型。
常见的数据挖掘模型有:
在这一阶段,Python也具有很好的工具库支持我们的建模工作:
scikit-learn-适用Python实现的机器学习算法库。scikit-learn可以实现数据预处理、分类、回归、降维、模型选择等常用的机器学习算法。
Tensorflow-适用于深度学习且数据处理需求不高的项目。这类项目往往数据量较大,且最终需要的精度更高。
5)可视化分析
数据分析最后一步是撰写数据分析报告,这也是数据可视化的一个过程。在数据可视化方面,Python目前主流的可视化工具有:
Matplotlib-主要用于二维绘图,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
Seaborn-是基于matplotlib产生的一个模块,专攻于统计可视化,可以和Pandas进行无缝链接。
从上图我们也可以得知,在整个数据分析流程,无论是数据提取、数据预处理、数据建模和分析,还是数据可视化,Python目前已经可以很好地支持我们的数据分析工作。
python数据分析与应用-Python数据分析与应用 PDF 内部全资料版
给大家带来的一篇关于Python数据相关的电子书资源,介绍了关于Python方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小281 MB,黄红梅 张良均编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.8。
内容介绍
目录
第1章 Python数据分析概述 1
任务1.1 认识数据分析 1
1.1.1 掌握数据分析的概念 2
1.1.2 掌握数据分析的流程 2
1.1.3 了解数据分析应用场景 4
任务1.2 熟悉Python数据分析的工具 5
1.2.1 了解数据分析常用工具 6
1.2.2 了解Python数据分析的优势 7
1.2.3 了解Python数据分析常用类库 7
任务1.3 安装Python的Anaconda发行版 9
1.3.1 了解Python的Anaconda发行版 9
1.3.2 在Windows系统中安装Anaconda 9
1.3.3 在Linux系统中安装Anaconda 12
任务1.4 掌握Jupyter Notebook常用功能 14
1.4.1 掌握Jupyter Notebook的基本功能 14
1.4.2 掌握Jupyter Notebook的高 级功能 16
小结 19
课后习题 19
第2章 NumPy数值计算基础 21
任务2.1 掌握NumPy数组对象ndarray 21
2.1.1 创建数组对象 21
2.1.2 生成随机数 27
2.1.3 通过索引访问数组 29
2.1.4 变换数组的形态 31
任务2.2 掌握NumPy矩阵与通用函数 34
2.2.1 创建NumPy矩阵 34
2.2.2 掌握ufunc函数 37
任务2.3 利用NumPy进行统计分析 41
2.3.1 读/写文件 41
2.3.2 使用函数进行简单的统计分析 44
2.3.3 任务实现 48
小结 50
实训 50
实训1 创建数组并进行运算 50
实训2 创建一个国际象棋的棋盘 50
课后习题 51
第3章 Matplotlib数据可视化基础 52
任务3.1 掌握绘图基础语法与常用参数 52
3.1.1 掌握pyplot基础语法 53
3.1.2 设置pyplot的动态rc参数 56
任务3.2 分析特征间的关系 59
3.2.1 绘制散点图 59
3.2.2 绘制折线图 62
3.2.3 任务实现 65
任务3.3 分析特征内部数据分布与分散状况 68
3.3.1 绘制直方图 68
3.3.2 绘制饼图 70
3.3.3 绘制箱线图 71
3.3.4 任务实现 73
小结 77
实训 78
实训1 分析1996 2015年人口数据特征间的关系 78
实训2 分析1996 2015年人口数据各个特征的分布与分散状况 78
课后习题 79
第4章 pandas统计分析基础 80
任务4.1 读/写不同数据源的数据 80
4.1.1 读/写数据库数据 80
4.1.2 读/写文本文件 83
4.1.3 读/写Excel文件 87
4.1.4 任务实现 88
任务4.2 掌握DataFrame的常用操作 89
4.2.1 查看DataFrame的常用属性 89
4.2.2 查改增删DataFrame数据 91
4.2.3 描述分析DataFrame数据 101
4.2.4 任务实现 104
任务4.3 转换与处理时间序列数据 107
4.3.1 转换字符串时间为标准时间 107
4.3.2 提取时间序列数据信息 109
4.3.3 加减时间数据 110
4.3.4 任务实现 111
任务4.4 使用分组聚合进行组内计算 113
4.4.1 使用groupby方法拆分数据 114
4.4.2 使用agg方法聚合数据 116
4.4.3 使用apply方法聚合数据 119
4.4.4 使用transform方法聚合数据 121
4.4.5 任务实现 121
任务4.5 创建透视表与交叉表 123
4.5.1 使用pivot_table函数创建透视表 123
4.5.2 使用crosstab函数创建交叉表 127
4.5.3 任务实现 128
小结 130
实训 130
实训1 读取并查看P2P网络贷款数据主表的基本信息 130
实训2 提取用户信息更新表和登录信息表的时间信息 130
实训3 使用分组聚合方法进一步分析用户信息更新表和登录信息表 131
实训4 对用户信息更新表和登录信息表进行长宽表转换 131
课后习题 131
第5章 使用pandas进行数据预处理 133
任务5.1 合并数据 133
5.1.1 堆叠合并数据 133
5.1.2 主键合并数据 136
5.1.3 重叠合并数据 139
5.1.4 任务实现 140
任务5.2 清洗数据 141
5.2.1 检测与处理重复值 141
5.2.2 检测与处理缺失值 146
5.2.3 检测与处理异常值 149
5.2.4 任务实现 152
任务5.3 标准化数据 154
5.3.1 离差标准化数据 154
5.3.2 标准差标准化数据 155
5.3.3 小数定标标准化数据 156
5.3.4 任务实现 157
任务5.4 转换数据 158
5.4.1 哑变量处理类别型数据 158
5.4.2 离散化连续型数据 160
5.4.3 任务实现 162
小结 163
实训 164
实训1 插补用户用电量数据缺失值 164
实训2 合并线损、用电量趋势与线路告警数据 164
实训3 标准化建模专家样本数据 164
课后习题 165
第6章 使用scikit-learn构建模型 167
任务6.1 使用sklearn转换器处理数据 167
6.1.1 加载datasets模块中的数据集 167
6.1.2 将数据集划分为训练集和测试集 170
6.1.3 使用sklearn转换器进行数据预处理与降维 172
6.1.4 任务实现 174
任务6.2 构建并评价聚类模型 176
6.2.1 使用sklearn估计器构建聚类模型 176
6.2.2 评价聚类模型 179
6.2.3 任务实现 182
任务6.3 构建并评价分类模型 183
6.3.1 使用sklearn估计器构建分类模型 183
6.3.2 评价分类模型 186
6.3.3 任务实现 188
任务6.4 构建并评价回归模型 190
6.4.1 使用sklearn估计器构建线性回归模型 190
6.4.2 评价回归模型 193
6.4.3 任务实现 194
小结 196
实训 196
实训1 使用sklearn处理wine和wine_quality数据集 196
实训2 构建基于wine数据集的K-Means聚类模型 196
实训3 构建基于wine数据集的SVM分类模型 197
实训4 构建基于wine_quality数据集的回归模型 197
课后习题 198
第7章 航空公司客户价值分析 199
任务7.1 了解航空公司现状与客户价值分析 199
7.1.1 了解航空公司现状 200
7.1.2 认识客户价值分析 201
7.1.3 熟悉航空客户价值分析的步骤与流程 201
任务7.2 预处理航空客户数据 202
7.2.1 处理数据缺失值与异常值 202
7.2.2 构建航空客户价值分析关键特征 202
7.2.3 标准化LRFMC模型的5个特征 206
7.2.4 任务实现 207
任务7.3 使用K-Means算法进行客户分群 209
7.3.1 了解K-Means聚类算法 209
7.3.2 分析聚类结果 210
7.3.3 模型应用 213
7.3.4 任务实现 214
小结 215
实训 215
实训1 处理信用卡数据异常值 215
实训2 构造信用卡客户风险评价关键特征 217
实训3 构建K-Means聚类模型 218
课后习题 218
第8章 财政收入预测分析 220
任务8.1 了解财政收入预测的背景与方法 220
8.1.1 分析财政收入预测背景 220
8.1.2 了解财政收入预测的方法 222
8.1.3 熟悉财政收入预测的步骤与流程 223
任务8.2 分析财政收入数据特征的相关性 223
8.2.1 了解相关性分析 223
8.2.2 分析计算结果 224
8.2.3 任务实现 225
任务8.3 使用Lasso回归选取财政收入预测的关键特征 225
8.3.1 了解Lasso回归方法 226
8.3.2 分析Lasso回归结果 227
8.3.3 任务实现 227
任务8.4 使用灰色预测和SVR构建财政收入预测模型 228
8.4.1 了解灰色预测算法 228
8.4.2 了解SVR算法 229
8.4.3 分析预测结果 232
8.4.4 任务实现 234
小结 236
实训 236
实训1 求取企业所得税各特征间的相关系数 236
实训2 选取企业所得税预测关键特征 237
实训3 构建企业所得税预测模型 237
课后习题 237
第9章 家用热水器用户行为分析与事件识别 239
任务9.1 了解家用热水器用户行为分析的背景与步骤 239
9.1.1 分析家用热水器行业现状 240
9.1.2 了解热水器采集数据基本情况 240
9.1.3 熟悉家用热水器用户行为分析的步骤与流程 241
任务9.2 预处理热水器用户用水数据 242
9.2.1 删除冗余特征 242
9.2.2 划分用水事件 243
9.2.3 确定单次用水事件时长阈值 244
9.2.4 任务实现 246
任务9.3 构建用水行为特征并筛选用水事件 247
9.3.1 构建用水时长与频率特征 248
9.3.2 构建用水量与波动特征 249
9.3.3 筛选候选洗浴事件 250
9.3.4 任务实现 251
任务9.4 构建行为事件分析的BP神经网络模型 255
9.4.1 了解BP神经网络算法原理 255
9.4.2 构建模型 259
9.4.3 评估模型 260
9.4.4 任务实现 260
小结 263
实训 263
实训1 清洗运营商客户数据 263
实训2 筛选客户运营商数据 264
实训3 构建神经网络预测模型 265
课后习题 265
附录A 267
附录B 270
参考文献 295
学习笔记
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。 定义 (推荐学习:Python视频教程) 用户可以通过电子邮件,Dropbox,GitHub 和 Jupyter Notebook Viewer,将 Jupyter Notebook 分享给其他人。 在Jupyter Notebook 中,代码可以实时的生成图像,视频,LaTeX和JavaScript。 使用 数据挖掘领域中最热门的比赛 Kaggle 里的资料都是Jupyter 格式 。 架构 Jupyter组件 Jupyter包含以下组件: Jupyter Notebook 和 ……
本文实例讲述了Python实现的微信好友数据分析功能。分享给大家供大家参考,具体如下: 这里主要利用python对个人微信好友进行分析并把结果输出到一个html文档当中,主要用到的python包为 itchat , pandas , pyecharts 等 1、安装itchat 微信的python sdk,用来获取个人好友关系。获取的代码 如下: import itchatimport pandas as pdfrom pyecharts import Geo, Baritchat.login()friends = itchat.get_friends(update=True)[0:]def User2dict(User): User_dict = {} User_dict["NickName"] = User["NickName"] if User["NickName"] else "NaN" User_dict["City"] = User["City"] if User["City"] else "NaN" User_dict["Sex"] = User["Sex"] if User["Sex"] else 0 User_dict["Signature"] = User["Signature"] if User["Signature"] else "NaN" ……
基于微信开放的个人号接口python库itchat,实现对微信好友的获取,并对省份、性别、微信签名做数据分析。 效果: 直接上代码,建三个空文本文件stopwords.txt,newdit.txt、unionWords.txt,下载字体simhei.ttf或删除字体要求的代码,就可以直接运行。 #wxfriends.py 2018-07-09import itchatimport sysimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#绘图时可以显示中文plt.rcParams['axes.unicode_minus']=False#绘图时可以显示中文import jiebaimport jieba.posseg as psegfrom scipy.misc import imreadfrom wordcloud import WordCloudfrom os import path#解决编码问题non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd) #获取好友信息def getFriends():……
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下: 前面讲述了关于双色球的各种算法,这里将进行下期双色球号码的预测,想想有些小激动啊。 代码中使用了线性回归算法,这个场景使用这个算法,预测效果一般,各位可以考虑使用其他算法尝试结果。 发现之前有很多代码都是重复的工作,为了让代码看的更优雅,定义了函数,去调用,顿时高大上了 #!/usr/bin/python# -*- coding:UTF-8 -*-#导入需要的包import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport operatorfrom sklearn import datasets,linear_modelfrom sklearn.linear_model import LogisticRegression#读取文件d……
以上就是本次介绍的Python数据电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对鬼鬼的支持。
注·获取方式:私信(666)
python大数据挖掘系列之基础知识入门 知识整理(入门教程含源码)
Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们。
Python数据分析与挖掘技术概述
所谓数据分析,即对已知的数据进行分析,然后提取出一些有价值的信息,比如统计平均数,标准差等信息,数据分析的数据量可能不会太大,而数据挖掘,是指对大量的数据进行分析与挖倔,得到一些未知的,有价值的信息等,比如从网站的用户和用户行为中挖掘出用户的潜在需求信息,从而对网站进行改善等。
数据分析与数据挖掘密不可分,数据挖掘是对数据分析的提升。数据挖掘技术可以帮助我们更好的发现事物之间的规律。所以我们可以利用数据挖掘技术可以帮助我们更好的发现事物之间的规律。比如发掘用户潜在需求,实现信息的个性化推送,发现疾病与病状甚至病与药物之间的规律等。
预先善其事必先利其器
我们首先聊聊数据分析的模块有哪些:
下面就说说这些模块的基础使用。
numpy模块安装与使用
安装:
下载地址是:
我这里下载的包是1.11.3版本,地址是:
下载好后,使用pip install "numpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl"
安装的numpy版本一定要是带mkl版本的,这样能够更好支持numpy
numpy简单使用
生成随机数
主要使用numpy下的random方法。
pandas
使用 pip install pandas 即可
直接上代码:
下面看看pandas输出的结果, 这一行的数字第几列,第一列的数字是行数,定位一个通过第一行,第几列来定位:
常用方法如下:
下面看看pandas对数据的统计,下面就说说每一行的信息
转置功能:把行数转换为列数,把列数转换为行数,如下所示:
通过pandas导入数据
pandas支持多种输入格式,我这里就简单罗列日常生活最常用的几种,对于更多的输入方式可以查看源码后者官网。
CSV文件
csv文件导入后显示输出的话,是按照csv文件默认的行输出的,有多少列就输出多少列,比如我有五列数据,那么它就在prinit输出结果的时候,就显示五列
excel表格
依赖于xlrd模块,请安装它。
老样子,原滋原味的输出显示excel本来的结果,只不过在每一行的开头加上了一个行数
读取SQL
依赖于PyMySQL,所以需要安装它。pandas把sql作为输入的时候,需要制定两个参数,第一个是sql语句,第二个是sql连接实例。
读取HTML
依赖于lxml模块,请安装它。
对于HTTPS的网页,依赖于BeautifulSoup4,html5lib模块。
读取HTML只会读取HTML里的表格,也就是只读取
显示的是时候是通过python的列表展示,同时添加了行与列的标识
读取txt文件
输出显示的时候同时添加了行与列的标识
scipy
安装方法是先下载whl格式文件,然后通过pip install “包名” 安装。whl包下载地址是:
matplotlib 数据可视化分析
我们安装这个模块直接使用pip install即可。不需要提前下载whl后通过 pip install安装。
下面请看代码:
下面说说修改图的样式
关于图形类型,有下面几种:
关于颜色,有下面几种:
关于形状,有下面几种:
我们还可以对图稍作修改,添加一些样式,下面修改圆点图为红色的点,代码如下:
我们还可以画虚线图,代码如下所示:
还可以给图添加上标题,x,y轴的标签,代码如下所示
直方图
利用直方图能够很好的显示每一段的数据。下面使用随机数做一个直方图。
Y轴为出现的次数,X轴为这个数的值(或者是范围)
还可以指定直方图类型通过histtype参数:
图形区别语言无法描述很详细,大家可以自信尝试。
举个例子:
子图功能
什么是子图功能呢?子图就是在一个大的画板里面能够显示多张小图,每个一小图为大画板的子图。
我们知道生成一个图是使用plot功能,子图就是subplog。代码操作如下:
我们现在可以通过一堆数据来绘图,根据图能够很容易的发现异常。下面我们就通过一个csv文件来实践下,这个csv文件是某个网站的文章阅读数与评论数。
先说说这个csv的文件结构,第一列是序号,第二列是每篇文章的URL,第三列每篇文章的阅读数,第四列是每篇评论数。
我们的需求就是把评论数作为Y轴,阅读数作为X轴,所以我们需要获取第三列和第四列的数据。我们知道获取数据的方法是通过pandas的values方法来获取某一行的值,在对这一行的值做切片处理,获取下标为3(阅读数)和4(评论数)的值,但是,这里只是一行的值,我们需要是这个csv文件下的所有评论数和阅读数,那怎么办?聪明的你会说,我自定义2个列表,我遍历下这个csv文件,把阅读数和评论数分别添加到对应的列表里,这不就行了嘛。呵呵,其实有一个更快捷的方法,那么就是使用T转置方法,这样再通过values方法,就能直接获取这一评论数和阅读数了,此时在交给你matplotlib里的pylab方法来作图,那么就OK了。了解思路后,那么就写吧。
下面看看代码: