基本信息

作者:

沈祥壮

ISBN:9787121336539

上架时间:2018-3-22

出版日期:2018 年3月

开本:16开

页码:260

版次:1-1

【插图】

编辑推荐

了解基本的Python语法,想利用Python进行数据分析,数据挖掘的初学者

内容简介

书籍

计算机书籍

本书作为数据分析的入门图书,以Python语言为基础,介绍了数据分析的整个流程。本书内容涵盖数据的获取(即网络爬虫程序的设计)、前期数据的清洗和处理、运用机器学习算法进行建模分析,以及使用可视化的方法展示数据及结果。首先,书中不会涉及过于高级的语法,不过还是希望读者有一定的语法基础,这样可以更好地理解本书的内容。其次,本书重点在于应用Python来完成一些数据分析和数据处理的工作,即如何使用Python来完成工作而非专注于Python语言语法等原理的讲解。本书的目的是让初学者不论对数据分析流程本身还是Python语言,都能有一个十分直观的感受,为以后的深入学习打下基础。最后,读者不必须按顺序通读本书,因为各个章节层次比较分明,可以根据兴趣或者需要来自行安排。例如第5章介绍了一些实战的小项目,有趣且难度不大,大家可以在学习前面内容之余来阅读这部分内容。

作译者

沈祥壮

自学Python两年,以数据分析为主线,系统学习了数据的采集,处理、分析和可视化。在研究统计机器学习理论的同时,使用Python语言实现了部分统计学习算法。研究方向包括数据采集,数据挖掘,统计机器学习及图像处理。

目录

1 准备1

1.1 开发环境搭建2

1.1.1 在Ubuntu系统下搭建Python集成开发环境2

1.1.2 在Windows系统下搭建Python集成开发环境13

1.1.3 三种安装第三方库的方法16

1.2 Python基础语法介绍19

1.2.1 if__name__=='__main__'20

1.2.2 列表解析式22

1.2.3 装饰器23

1.2.4 递归函数26

1.2.5 面向对象27

1.3 The Zen of Python28

参考文献30

2 数据的获取31

2.1 爬虫简介31

2.2 数据抓取实践33

2.2.1 请求网页数据33

2.2.2 网页解析38

2.2.3 数据的存储46

2.3 爬虫进阶50

2.3.1 异常处理50

2.3.2 robots.txt58

2.3.3 动态UA60

2.3.4 代理IP61

2.3.5 编码检测61

2.3.6 正则表达式入门63

2.3.7 模拟登录69

2.3.8 验证码问题74

2.3.9 动态加载内容的获取84

2.3.10 多线程与多进程93

2.4 爬虫总结101

参考文献102

3 数据的存取与清洗103

3.1 数据存取103

3.1.1 基本文件操作103

3.1.2 CSV文件的存取111

3.1.3 JSON文件的存取116

3.1.4 XLSX文件的存取121

3.1.5 MySQL数据库文件的存取137

3.2 NumPy145

3.2.1 NumPy简介145

3.2.2 NumPy基本操作146

3.3 pandas158

3.3.1 pandas简介158

3.3.2 Series与DataFrame的使用159

3.3.3 布尔值数组与函数应用169

3.4 数据的清洗174

3.4.1 编码问题174

3.4.2 缺失值的检测与处理175

3.4.3 去除异常值181

3.4.4 去除重复值与冗余信息183

3.4.5 注意事项185

参考文献187

4 数据的分析及可视化188

4.1 探索性数据分析189

4.1.1 基本流程189

4.1.2 数据降维197

4.2 机器学习入门199

4.2.1 机器学习简介200

4.2.2 决策树——机器学习算法的应用202

4.3 手动实现KNN算法205

4.3.1 特例——最邻近分类器205

4.3.2 KNN算法的完整实现213

4.4 数据可视化215

4.4.1 高质量作图工具——matplotlib215

4.4.2 快速作图工具——pandas与matplotlib223

4.4.3 简捷作图工具——seaborn与matplotlib226

4.4.4 词云图230

参考文献232

5 Python与生活234

5.1 定制一个新闻提醒服务234

5.1.1 新闻数据的抓取235

5.1.2 实现邮件发送功能237

5.1.3 定时执行及本地日志记录239

5.2 Python与数学241

5.2.1 估计π值242

5.2.2 三门问题245

5.2.3 解决LP与QP问题(选读)247

5.3 QQ群聊天记录数据分析251

参考文献256

前言

Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用Python便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。本书本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。希望借此为Python初学者打开数据分析领域的大门,初窥数据分析的奥秘。

本书的主要内容

第1章主要讲解了在Ubuntu和Windows系统下,Python集成开发环境的搭建。考虑到初学者容易为安装第三方库犯难,又介绍了三种简单实用的方法来安装这些常见的库。接着对几个后面要用到的高级语法进行了简单介绍,为之后的应用打下基础。

第2章集中讲解了数据采集的流程,即网络爬虫程序的设计与实现。首先本章没有拘泥于使用Python的内置库urllib库进行实现,而是直接介绍了requests和其他更加简捷强大的库来完成程序的设计。在进阶内容中,对常见的编码问题、异常处理、代理IP、验证码、机器人协议、模拟登录,以及多线程等相关问题给出了解决的方案。

第3章讲解数据的清洗问题。在具体讲解清洗数据之前,先介绍了TXT、XLSX、JSON、CSV等各种文件的导入和导出的方法,并介绍了Python与MySQL数据库交互的方式。接着介绍了NumPy和pandas库的基本使用方法,这是我们用于数据处理和科学计算的两个强大的工具。最后综合以上的学习介绍了数据的去重、缺失值的填补等经典的数据清洗方法。

第4章首先讲解探索性数据分析的应用,并且简单介绍了机器学习基本知识。然后演示如何应用sklearn库提供的决策树和最邻近算法来处理分类问题,并尝试根据算法原理手动实现最邻近算法。最后介绍如何使用pandas、matplotlib和seaborn这三个库来实现数据的可视化。

第5章是综合性学习的章节,讲解了三个小项目的完整实现过程,旨在通过操作生活中真正的数据来强化前面基础内容的学习。

本书的读者对象

本书面向想从事数据工作的Python初学者。由于本书并不对Python的基础语法做详细的讲解,所以希望读者有一定的语法基础。

测试环境及代码

我们使用的语法是基于Python 3的,具体是Python 3.6,用到的第三方库也已经全面支持此版本,所以读者不必担心相关的版本问题;测试环境为Ubuntu 16.04 LTS 64-Bit。本书中使用的全部代码及相关数据已经托管至Github, 读者可以进入https://github.com/shenxiangzhuang/PythonDataAnalysis进行下载。

联系作者

虽然本书只是入门级图书,但是限于笔者水平有限,难免会存在一些错误,有些地方的表述可能也不是那么准确。非常欢迎读者指出本书的不当之处或提出建设性的意见。笔者的电子邮件地址是datahonor@gmail.com。

致谢

在本书的撰写过程中受到过很多人的帮助,这里特别感谢刘松学长,感谢学长对笔者本人长久以来的帮助,从他那里我学到了很多关于Python语言、机器学习以及计算机视觉等相关知识。另外,特别感谢IT工作者谢满锐先生对本书的细心审校,也感谢他为本书的进一步修改提出建设性意见。同时,感谢电子工业出版社石倩、杨嘉媛编辑的帮助。最后,本书参阅了大量的国内外的文献,这里对有关作者表示衷心的感谢。

媒体评论

这是一本务实之作,充分体现数据分析流程的各项环节,包含数据的采集、清洗和探索性分析,并通过大家耳熟能说的Python工具加以实操。对Python的初学者来说,可以从本书学到数据分析的思维和实战。这是一本不错的入门指南。

——刘顺祥(公众号:数据分析1480)嘉桥信息科技有限公司 高级数据分析师

书摘

3.4 数据的清洗

数据的清洗工作,在整个数据分析的流程中占据重要的地位,需要消耗大量的时间和精力。因为数据没有清洗干净会为后续的分析造成很多不必要的麻烦,严重时还可能得到错误的分析结果,事倍功半。所以数据的清洗是非常值得重视的。作为数据分析的入门书,这里将以pandas库为主,介绍一些常用的、清洗数据的方法。

3.4.1 编码问题

我们接触到的数据中有时会包含大量的文本数据,而文本数据的编码是大多数人都感到头疼的事情。其实,在介绍爬虫的时候,获取网页数据可以通过chardet检测编码来确保编码的正确性。当然在编写爬虫程序时,这是一种极为有效的办法。这里介绍另一种方法来解决更加普遍的编码问题,那就是ftfy库。

先来看一个简单的爬虫。

In [5]: import requests

In [6]: data = requests.get('http://www.baidu.com')

In [7]: data

Out[7]:

In [8]: data.text()

运行输出如下所示(部分)。

class=cp-feedback]æ\\x84\\x8fè§\\x81å\\x8f\\x8dé¦\\x88 京ICPè¯\\x810301

73å\\x8f?

/gs.gif]

body] \

\

'

相信读者对这段代码已经非常熟悉了,程序只是简单地请求了百度主页的内容。但是从结果可以看出,输出的文本并没有中文,显然存在编码问题。

用ftfy解决问题的代码如下。

In [15]: from ftfy import fix_text

.  In [16]: fix_text(data.text)

运行输出如下所示(部分)。

;使用百度前必读 意见反馈 京ICP证030173号

data-lazyload=//www.baidu.com/img/gs.gif][/body] \

可以看到,只需要简单的调用另外一行代码就可以修复编码问题。ftfy还有许多其他的特性,就不再介绍。如果读者在工作中需要处理更复杂的编码问题,可以参考ftfy官方文档进行进一步学习。

3.4.2 缺失值的检测与处理

缺失值的检测,代码如下。

In [37]: df = DataFrame({'c1':[0,1,2,None], 'c2':[1,None,2, 3]})

In [38]: df

Out[38]:

c1 c2

0 0.0 1.0

1 1.0 NaN

2 2.0 2.0

3 NaN 3.0

In [39]: df.isnull()

Out[39]:

c1c2

0 False False

1 False True

2 False False

3 True False

In [40]: df.isnull().sum()

Out[40]:

c1 1

c2 1

dtype: int64

可以看到Python中的None在pandas被识别为缺失值NaN(Not a Number),而且我们可以通过isnull()进行检测。再通过sum(),可以得到行或者列的缺失值汇总。在当前列缺失值不太多的时候,可以通过多种方法进行缺失值的填充。

可以直接指定特定的值来填补缺失值,如下所示。

In [57]: df.fillna('missing')

Out[57]:

c1 c2

0 0 1

1 1 missing

2 2 2

3 missing 3

In [58]: df.fillna(df.mean())

Out[58]:

c1 c2

0 0.0 1.0

1 1.0 2.0

2 2.0 2.0

3 1.0 3.0

也可以指定相应的方法,根据周围的值来填补缺失值,如下所示。

In [68]: df.ix[0,1] = None

In [69]: df

Out[69]:

c1 c2

0 0.0 NaN

1 1.0 NaN

2 2.0 2.0

3 NaN 3.0

In [70]: df.fillna(method="bfill", limit=1)

Out[70]:

c1 c2

0 0.0 NaN

1 1.0 2.0

2 2.0 2.0

3 NaN 3.0

下面进行简要说明。

bfill

这里指定了bfill(back fill)方法进行填充,即为使用缺失值后面的数据进行填充,如第二列第二个缺失值,就被填充为其后面的2.0,而第一列的缺失值后面没有值,就继续保持缺失状态。类似的填充方法还有ffill,用其前面的值进行填充。

limit

使用limit是为了限制连续填充。这里选择1表示一列中有多个缺失值相邻时,只填充最近的一个缺失值。

python便捷数据怎么获取_Python数据分析入门——从数据获取到可视化相关推荐

  1. python便捷数据怎么获取_Python数据获取与表示基础编程练习

    数据获取与表示基础编程练习 <用 Python 玩转数据> by Dazhuang@NJU Python 中便捷高效的数据结构例如序列可以很好地用来解决问题,下面几个例子大家可 以用来练手 ...

  2. python实验数据预处理案例_Python数据分析小案例——红楼梦文本分析(一) 文本预处理...

    本文开始介绍一个简单的数据分析案例,分析红楼梦文本,本文主要内容是将红楼梦文本按照章节获取每一回的标题,字数,段落数并保存到csv中方便后续数据分析 红楼梦小说文本可以在这里下载 链接:https:/ ...

  3. python保存数据到本地_Python爬虫入门 | 6 将爬回来的数据存到本地

    1.用Python语句存储数据 写文件时,我们主要用到 with open() 语句: with open(name,mode,encoding) as file:  file.write()  # ...

  4. python查看数据最后五行_python数据分析

    一.数据导入和导出 (一)读取csv文件 1.本地读取 import pandas as pd df = pd.read_csv('E:\\tips.csv') 2.网络读取 import panda ...

  5. python 保留顺序去重_Python数据分析入门教程(二):数据预处理

    作者 | CDA数据分析师 从菜市场买来的菜,总有一些不太好的,所以把菜买回来以后要先做一遍预处理,把那些不太好的部分扔掉.现实中大部分的数据都类似于菜市场的菜品,拿到以后都要先做一次预处理. 常见的 ...

  6. python分析数据的相关性质_理解数据的性质_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...

    为什么学Python: 重要:数据分析是职业技能必备,Python是大数据分析** 趋势:Python是目前非常火的编程语言,使用人多 好学:学习简单,容易上手,使用灵活,可扩展强 **:会Pytho ...

  7. python分析数据走势图_python对股市进行数据分析-tushare篇

    数据准备 TuShare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们 ...

  8. python数据分享人力资源_Python数据分析帮你清晰的了解整理员工们的工作效率和整体满意度...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 项目背景 2018年,被称为互联网的寒冬之年.无论大小公司,纷纷走上了裁员 ...

  9. python爬b站评论_Python爬虫入门教程 32-100 B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...

最新文章

  1. FreeTextBox License机制的粗浅分析
  2. android代码修改excel文件格式,Android实现类似execel的表格 能回显并能修改表格内容的方法...
  3. Android ContentProvider和getContentResolver
  4. Alamofire源码解读系列(五)之结果封装(Result)
  5. 被问懵了,BeanFactory和FactoryBean接口的区别到底是什么?
  6. jdk1.8 源码分析导图
  7. 存储过程中执行动态Sql语句
  8. python的主要版本_Python目前主要有( )两个主要版本。_学小易找答案
  9. navicat如何连接腾讯mysql_使用Navicat连接腾讯云Mysql数据库
  10. CF1286D-LCC【动态dp,数学期望】
  11. 小程序分享到朋友圈功能_小程序开发日记 分享到朋友圈
  12. 牛客网编程题03--明明的随机数
  13. procreate 笔刷_插画学习必备:2000款Procreate大师级笔刷,超级强大,免费领取
  14. (转帖)小菜编程成长记(十二 无熟人难办事?——聊设计模式迪米特法则)
  15. 亚马逊利润_大流行给亚马逊带来了创纪录的利润
  16. UML-包图中包与包之间的关系
  17. 多音字重组成新的词语句子
  18. 项目目录游戏服务器,Yivgame是一个基于go-kit的微服务游戏服务器
  19. BC26电信云平台LWM2M接入指南
  20. 转:openCV基础图像处理

热门文章

  1. 推荐一款好用的数据安全工具
  2. 微信朋友圈发动态功能流程图案例
  3. 思维导图怎么画?怎么画出简单又漂亮的思维导图
  4. 字节流和字符流区别(附例子)
  5. Windows 重装系统,配置 WSL,美化终端,部署 WebDAV 服务器,并备份系统分区
  6. 为什么dnsmasq服务总是重启(by quqi99)
  7. Pygame安装与使用
  8. 计算机出国读研需要准备什呢,出国留学做哪些准备什么东西
  9. 华为10月17日提前发布鸿蒙手机,华为10月17日发布顶尖新机:首发鸿蒙系统+全球首发屏下摄像头...
  10. 用计算机弹奏喜欢你,抖音喜欢你计算器乐谱是怎样的?抖音喜欢你计算器乐谱分享[多图]...