logo资料库

pyhton数据处理(Data Wrangling with Python).pdf

第1页 / 共402页
第2页 / 共402页
第3页 / 共402页
第4页 / 共402页
第5页 / 共402页
第6页 / 共402页
第7页 / 共402页
第8页 / 共402页
资料共402页,剩余部分请下载后查看
封面
数字版权声明
译者介绍
扉页
版权页
版权声明
O’Reilly Media, Inc.介绍
本书赞誉
目录
前言
第1章 Python简介
1.1 为什么选择Python
1.2 开始使用Python
1.2.1 Python版本选择
1.2.2 安装Python
1.2.3 测试Python
1.2.4 安装pip
1.2.5 安装代码编辑器
1.2.6 安装IPython(可选)
1.3 小结
第2章 Python基础
2.1 基本数据类型
2.1.1 字符串
2.1.2 整数和浮点数
2.2 数据容器
2.2.1 变量
2.2.2 列表
2.2.3 字典
2.3 各种数据类型的用途
2.3.1 字符串方法:字符串能做什么
2.3.2 数值方法:数字能做什么
2.3.3 列表方法:列表能做什么
2.3.4 字典方法:字典能做什么
2.4 有用的工具:type、dir和help
2.4.1 type
2.4.2 dir
2.4.3 help
2.5 综合运用
2.6 代码的含义
2.7 小结
第3章 供机器读取的数据
3.1 CSV数据
3.1.1 如何导入CSV数据
3.1.2 将代码保存到文件中并在命令行中运行
3.2 JSON数据
如何导入JSON数据
3.3 XML数据
如何导入XML数据
3.4 小结
第4章 处理Excel文件
4.1 安装Python包
4.2 解析Excel文件
4.3 开始解析
4.4 小结
第5章 处理PDF文件,以及用Python解决问题只发布PDF 格式的数据是十分错误的,但有时你也没有其他选择。本章你将学习如何解析PDF,在学习过程中,你还会学习如何解决在代码中遇到的错误。我们还会讲到如何编写脚本,从一些基本概念(例如导入模块)讲起,逐步过渡到一些更复杂的内容。学完本章,你将学会在代码中思考问题与解决问题的许多方法。5.1 尽量不要用PDF本章用到的数据与上一章相同,只不过是PDF 格式的。一般来说,我们不会去寻找难以解析的数据格式,但我们在本书中之所以这么做,是因为你要处理的数据可能并不总是理想中的格式。你可以在本书的GitHub 仓库(https://github.com/jackiekazil/data-wrangling)中找到本章所用的PDF 文件。在开始解析PDF 数据之前,你需要考虑以下几件事情。• 你是
5.1 尽量不要用PDF
5.2 解析PDF的编程方法
5.2.1 利用slate库打开并读取PDF
5.2.2 将PDF转换成文本
5.3 利用pdfminer解析PDF
5.4 学习解决问题的方法
5.4.1 练习:使用表格提取,换用另一个库
5.4.2 练习:手动清洗数据
5.4.3 练习:试用另一种工具
5.5 不常见的文件类型
5.6 小结
第6章 数据获取与存储
6.1 并非所有数据生而平等
6.2 真实性核查
6.3 数据可读性、数据清洁度和数据寿命
6.4 寻找数据
6.4.1 打电话
6.4.2 美国政府数据
6.4.3 全球政府和城市开放数据
6.4.4 组织数据和非政府组织数据
6.4.5 教育数据和大学数据
6.4.6 医学数据和科学数据
6.4.7 众包数据和API
6.5 案例研究:数据调查实例
6.5.1 埃博拉病毒危机
6.5.2 列车安全
6.5.3 足球运动员的薪水
6.5.4 童工
6.6 数据存储
6.7 数据库简介
6.7.1 关系型数据库:MySQL和PostgreSQL
6.7.2 非关系型数据库:NoSQL
6.7.3 用Python创建本地数据库
6.8 使用简单文件
6.8.1 云存储和Python
6.8.2 本地存储和Python
6.9 其他数据存储方式
6.10 小结
第7章 数据清洗:研究、匹配与格式化
7.1 为什么要清洗数据
7.2 数据清洗基础知识
7.2.1 找出需要清洗的数据
7.2.2 数据格式化
7.2.3 找出离群值和不良数据
7.2.4 找出重复值
7.2.5 模糊匹配
7.2.6 正则表达式匹配
7.2.7 如何处理重复记录
7.3 小结
第8章 数据清洗:标准化和脚本化
8.1 数据归一化和标准化
8.2 数据存储
8.3 找到适合项目的数据清洗方法
8.4 数据清洗脚本化
8.5 用新数据测试
8.6 小结
第9章 数据探索和分析
9.1 探索数据
9.1.1 导入数据
9.1.2 探索表函数
9.1.3 联结多个数据集
9.1.4 识别相关性
9.1.5 找出离群值
9.1.6 创建分组
9.1.7 深入探索
9.2 分析数据
9.2.1 分离和聚焦数据
9.2.2 你的数据在讲什么
9.2.3 描述结论
9.2.4 将结论写成文档
9.3 小结
第10章 展示数据
10.1 避免讲故事陷阱
10.1.1 怎样讲故事
10.1.2 了解听众
10.2 可视化数据
10.2.1 图表
10.2.2 时间相关数据
10.2.3 地图
10.2.4 交互式元素
10.2.5 文字
10.2.6 图片、视频和插画
10.3 展示工具
10.4 发布数据
10.4.1 使用可用站点
10.4.2 开源平台:创建一个新网站
10.4.3 Jupyter(曾名IPython notebook)
10.5 小结
第11章 网页抓取:获取并存储网络数据
11.1 抓取什么和如何抓取
11.2 分析网页
11.2.1 检视:标记结构
11.2.2 网络/时间线:页面是如何加载的
11.2.3 控制台:同JavaScript交互
11.2.4 页面的深入分析
11.3 得到页面:如何通过互联网发出请求
11.4 使用Beautiful Soup读取网页
11.5 使用lxml读取网页
一个XPath案例
11.6 小结
第12章 高级网页抓取:屏幕抓取器与爬虫
12.1 基于浏览器的解析
12.1.1 使用Selenium进行屏幕读取
12.1.2 使用Ghost.py进行屏幕读取
12.2 爬取网页
12.2.1 使用Scrapy创建一个爬虫
12.2.2 使用Scrapy爬取整个网站
12.3 网络:互联网的工作原理,以及为什么它会让脚本崩溃
12.4 变化的互联网(或脚本为什么崩溃)
12.5 几句忠告
12.6 小结
第13章 应用编程接口
13.1 API特性
13.1.1 REST API与流式API
13.1.2 频率限制
13.1.3 分级数据卷
13.1.4 API key和token
13.2 一次简单的Twitter REST API数据拉取
13.3 使用Twitter REST API进行高级数据收集
13.4 使用Twitter流式API进行高级数据收集
13.5 小结
第14章 自动化和规模化
14.1 为什么要自动化
14.2 自动化步骤
14.3 什么会出错
14.4 在哪里自动化
14.5 自动化的特殊工具
14.5.1 使用本地文件、参数及配置文件
14.5.2 在数据处理中使用云
14.5.3 使用并行处理
14.5.4 使用分布式处理
14.6 简单的自动化
14.6.1 CronJobs
14.6.2 Web接口
14.6.3 Jupyter notebook
14.7 大规模自动化
14.7.1 Celery:基于队列的自动化
14.7.2 Ansible:操作自动化
14.8 监控自动化程序
14.8.1 Python日志
14.8.2 添加自动化信息
14.8.3 上传和其他报告
14.8.4 日志和监控服务
14.9 没有万无一失的系统
14.10 小结
第15章 结论
15.1 数据处理者的职责
15.2 数据处理之上
15.2.1 成为一名更优秀的数据分析师
15.2.2 成为一名更优秀的开发者
15.2.3 成为一名更优秀的视觉化讲故事者
15.2.4 成为一名更优秀的系统架构师
15.3 下一步做什么
附录A 编程语言对比
A.1 C、C++、Java与Python
A.2 R或MATLAB与Python
A.3 HTML与Python
A.4 JavaScript与Python
A.5 Node.js与Python
A.6 Ruby和Ruby on Rails与Python
附录B 初学者的Python学习资源
B.1 在线资源
B.2 线下小组
附录C 学习命令行
C.1 bash
C.1.1 跳转命令
C.1.2 修改文件
C.1.3 运行文件
C.1.4 利用命令行进行搜索
C.1.5 更多资源
C.2 Windows cmd/PowerShell
C.2.1 跳转命令
C.2.2 修改文件
C.2.3 运行文件
C.2.4 利用命令行进行搜索
C.2.5 更多资源
附录D 高级Python设置
D.1 第1步:安装GCC
D.2 第2步:(只在Mac上)安装Homebrew
D.3 第3步:(Mac系统)告诉系统去哪里寻找Homebrew
D.4 第4步:安装Python 2.7
D.5 第5步:安装virtualenv(Windows、Mac、Linux)
D.6 第6步:创建一个新目录
D.7 第7步:安装virtualenvwrapper
D.7.1 安装virtualenvwrapper(Mac和Linux)
D.7.2 安装virtualenvwrapper-win(Windows)
D.7.3 测试你的虚拟环境(Windows、Mac、Linux)
D.8 学习我们的新环境(Windows、Mac、Linux)
D.9 高级设置回顾
附录E Python陷阱
E.1 空白
E.2 可怕的GIL
E.3 =、==与is,以及何时只是复制
E.4 默认函数参数
E.5 Python作用域与内置函数:变量名称的重要性
E.6 定义对象与修改对象
E.7 修改不可变对象
E.8 类型检查
E.9 捕获多个异常
E.10 调试的力量
附录F IPython 指南
F.1 为什么使用IPython
F.2 IPython起步
F.3 魔法函数
F.4 最后的思考:一个简单的终端
附录G 使用亚马逊网络服务
G.1 启动AWS服务器
G.1.1 AWS步骤1:选择一个亚马逊机器镜像(AMI)
G.1.2 AWS步骤2:选择一个实例类型
G.1.3 AWS步骤7:学习实例启动
G.1.4 AWS额外问题:选择一个存在的键对或创建一个新的
G.2 登录AWS服务器
G.2.1 得到实例的公共DNS名称
G.2.2 准备你的私钥
G.2.3 登录你的服务器
G.3 小结
关于作者
关于封面
连接图灵
看完了
图灵社区的电子书没有采用专有客 户端,您可以在任意设备上,用自 己喜欢的浏览器和PDF阅读器进行 阅读。 但您购买的电子书仅供您个人使用, 未经授权,不得进行传播。 我们愿意相信读者具有这样的良知 和觉悟,与我们共同保护知识产权。 如果购买者有侵权行为,我们可能 对该用户实施包括但不限于关闭该 帐号等维权措施,并可能追究法律 责任。
图 灵 程 序 设 计 丛 书 Python数据处理 Data Wrangling with Python [美]Jacqueline Kazil Katharine Jarmul 著 张亮 吕家明 译 Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo O’Reilly Media, Inc.授权人民邮电出版社出版 人 民 邮 电 出 版 社 北  京
内 容 提 要 本书采用基于项目的方法,介绍用 Python 完成数据获取、数据清洗、数据探索、数据呈现、 数据规模化和自动化的过程。主要内容包括:Python 基础知识,如何从 CSV、Excel、XML、 JSON 和 PDF 文件中提取数据,如何获取与存储数据,各种数据清洗与分析技术,数据可视化 方法,如何从网站和 API 中提取数据。 本书适合数据处理工作相关人员。 ◆ ◆ ◆ 著    [美] Jacqueline Kazil Katharine Jarmul 译    张 亮 吕家明 责任编辑 岳新欣 执行编辑 魏书莉 责任印制 彭志环 人民邮电出版社出版发行  北京市丰台区成寿寺路11号 邮编 100164  电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn 北京      印刷 开本:800×1000 1/16 印张:24.75 字数:594千字 印数:1 — 4 000册 2017年 7 月第 1 版 2017年 7 月北京第 1 次印刷 著作权合同登记号 图字:01-2016-9369号 定价:99.00元 读者服务热线:(010)51095186转600 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广登字 20170147 号
版权声明 © 2016 by Jacqueline Kazil and Kjamistan, Inc. Simplified Chinese Edition, jointly published by O’Reilly Media, Inc. and Posts & Telecom Press, 2017. Authorized translation of the English edition, 2016 O’Reilly Media, Inc., the owner of all rights to publish and sell the same. All rights reserved including the rights of reproduction in whole or in part in any form. 英文原版由 O’Reilly Media, Inc. 出版,2015。 简体中文版由人民邮电出版社出版,2017。英文原版的翻译得到 O’Reilly Media, Inc. 的授 权。此简体中文版的出版和销售得到出版权和销售权的所有者——O’Reilly Media, Inc. 的 许可。 版权所有,未得书面许可,本书的任何部分和全部不得以任何形式重制。 iii
O’Reilly Media, Inc.介绍 O’Reilly Media 通过图书、杂志、在线服务、调查研究和会议等方式传播创新知识。 自 1978 年开始,O’Reilly 一直都是前沿发展的见证者和推动者。超级极客们正在开创 着未来,而我们关注真正重要的技术趋势——通过放大那些“细微的信号”来刺激社 会对新科技的应用。作为技术社区中活跃的参与者,O’Reilly 的发展充满了对创新的 倡导、创造和发扬光大。 O’Reilly 为软件开发人员带来革命性的“动物书”;创建第一个商业网站(GNN);组 织了影响深远的开放源代码峰会,以至于开源软件运动以此命名;创立了 Make 杂志, 从而成为 DIY 革命的主要先锋;公司一如既往地通过多种形式缔结信息与人的纽带。 O’Reilly 的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创 新产业的革命性思想。作为技术人士获取信息的选择,O’Reilly 现在还将先锋专家的 知识传递给普通的计算机用户。无论是通过图书出版、在线服务或者面授课程,每一 项 O’Reilly 的产品都反映了公司不可动摇的理念——信息是激发创新的力量。 业界评论 “O’Reilly Radar 博客有口皆碑。” ——Wired “O’Reilly 凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业务。” ——Business 2.0 “O’Reilly Conference 是聚集关键思想领袖的绝对典范。” ——CRN “一本 O’Reilly 的书就代表一个有用、有前途、需要学习的主题。” ——Irish Times “Tim 是位特立独行的商人,他不光放眼于最长远、最广阔的视野,并且切实地按照 Yogi Berra 的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去, Tim 似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错。” ——Linux Journal
本书赞誉 “所有新手数据科学家、数据工程师或其他技术方面的数据专家都应该读一读这本实践指 南。数据处理领域正需要这样一本书,真希望我第一次开始用 Python 处理数据时就能有它 指导。” ——Tyrone Grandison 博士,Proficiency Labs Intl. CEO “数据处理不仅仅是编写代码,还包括更多内容,这本精心编写的书可以告诉你需要知道 的一切内容。在新闻业需要更多数据专家的时代,这本书是循序渐进的宝贵资源。” ——Randy Picht,密苏里大学新闻学院 Donald W. Reynolds 新闻研究所执行理事 “很少有学习资源能够像这本书一样既全面又通俗易懂。它不仅介绍了你需要知道的内容, 还阐释了其原因及学习方法。无论你是数据新闻业的新手,还是想要扩展自己的能力, Katharine 和 Jacqueline 的这本书都是必备的。” ——Joshua Hatch,《高等教育纪事报》与《慈善纪事报》数据与交互高级编辑 “这是一个很棒的概论课程,讲述了我们用数据讲故事时所做的一切,(真的是一切!)既 包括了基础知识,也涵盖了最新技术。强烈推荐!” ——Brian Boyer,美国全国公共广播电台(NPR)可视化编辑 “这是一本实用的、通俗易懂的指南,你可以从中学习一些常见的不得不用代码完成的任 务:查找、提取、整理和检查数据。” “经常有记者问我:‘我很擅长使用电子表格,但下一步应该学些什么?’这本书给出了一 ——Chrys Wu,技术专家 v
分享到:
收藏