总是在起头可是能怎么办呢 Python数据分析

目录

前言1 
第1章准备工作5 
本书主要内容5 
为什么要使用Python进行数据分析6 
重要的Python库7 
安装和设置10 
社区和研讨会16 
使用本书16 
致谢18 
第2章引言20 
来自bit.ly的1.usa.gov数据21 
MovieLens1M数据集29 
1880—2010年间全美婴儿姓名35 
小结及展望47 
第3章IPython:一种交互式计算和开发环境48 
IPython基础49 
内省51 
使用命令历史60 
与操作系统交互63 
软件开发工具66 
IPythonHTMLNotebook75 
利用IPython提高代码开发效率的几点提示77 
高级IPython功能79 
致谢81 
第4章NumPy基础:数组和矢量计算82 
NumPy的ndarray:一种多维数组对象83 
通用函数:快速的元素级数组函数98 
利用数组进行数据处理100 
用于数组的文件输入输出107 
线性代数109 
随机数生成111 
范例:随机漫步112 
第5章pandas入门115 
pandas的数据结构介绍116 
基本功能126 
汇总和计算描述统计142 
处理缺失数据148 
层次化索引153 
其他有关pandas的话题158 
第6章数据加载、存储与文件格式162 
读写文本格式的数据162 
二进制数据格式179 
使用HTML和WebAPI181 
使用数据库182 
第7章数据规整化:清理、转换、合并、重塑186 
合并数据集186 
重塑和轴向旋转200 
数据转换204 
字符串操作217 
示例:USDA食品数据库224 
第8章绘图和可视化231 
matplotlibAPI入门231 
pandas中的绘图函数244 
绘制地图:图形化显示海地地震危机数据254 
Python图形化工具生态系统260 
第9章数据聚合与分组运算263 
GroupBy技术264 
数据聚合271 
分组级运算和转换276 
透视表和交叉表288 
示例:2012联邦选举委员会数据库291 
第10章时间序列302 
日期和时间数据类型及工具303 
时间序列基础307 
日期的范围、频率以及移动311 
时区处理317 
时期及其算术运算322 
重采样及频率转换327 
时间序列绘图334 
移动窗口函数337 
性能和内存使用方面的注意事项342 
第11章金融和经济数据应用344 
数据规整化方面的话题344 
分组变换和分析355 
更多示例应用361 
第12章NumPy高级应用368 
ndarray对象的内部机理368 
高级数组操作370 
广播378 
ufunc高级应用383 
结构化和记录式数组386 
更多有关排序的话题388 
NumPy的matrix类393 
高级数组输入输出395 
性能建议397 
附录APython语言精要401

目录

前言1 
第1章准备工作5 
本书主要内容5 
为什么要使用Python进行数据分析6 
重要的Python库7 
安装和设置10 
社区和研讨会16 
使用本书16 
致谢18 
第2章引言20 
来自bit.ly的1.usa.gov数据21 
MovieLens1M数据集29 
1880—2010年间全美婴儿姓名35 
小结及展望47 
第3章IPython:一种交互式计算和开发环境48 
IPython基础49 
内省51 
使用命令历史60 
与操作系统交互63 
软件开发工具66 
IPythonHTMLNotebook75 
利用IPython提高代码开发效率的几点提示77 
高级IPython功能79 
致谢81 
第4章NumPy基础:数组和矢量计算82 
NumPy的ndarray:一种多维数组对象83 
通用函数:快速的元素级数组函数98 
利用数组进行数据处理100 
用于数组的文件输入输出107 
线性代数109 
随机数生成111 
范例:随机漫步112 
第5章pandas入门115 
pandas的数据结构介绍116 
基本功能126 
汇总和计算描述统计142 
处理缺失数据148 
层次化索引153 
其他有关pandas的话题158 
第6章数据加载、存储与文件格式162 
读写文本格式的数据162 
二进制数据格式179 
使用HTML和WebAPI181 
使用数据库182 
第7章数据规整化:清理、转换、合并、重塑186 
合并数据集186 
重塑和轴向旋转200 
数据转换204 
字符串操作217 
示例:USDA食品数据库224 
第8章绘图和可视化231 
matplotlibAPI入门231 
pandas中的绘图函数244 
绘制地图:图形化显示海地地震危机数据254 
Python图形化工具生态系统260 
第9章数据聚合与分组运算263 
GroupBy技术264 
数据聚合271 
分组级运算和转换276 
透视表和交叉表288 
示例:2012联邦选举委员会数据库291 
第10章时间序列302 
日期和时间数据类型及工具303 
时间序列基础307 
日期的范围、频率以及移动311 
时区处理317 
时期及其算术运算322 
重采样及频率转换327 
时间序列绘图334 
移动窗口函数337 
性能和内存使用方面的注意事项342 
第11章金融和经济数据应用344 
数据规整化方面的话题344 
分组变换和分析355 
更多示例应用361 
第12章NumPy高级应用368 
ndarray对象的内部机理368 
高级数组操作370 
广播378 
ufunc高级应用383 
结构化和记录式数组386 
更多有关排序的话题388 
NumPy的matrix类393 
高级数组输入输出395 
性能建议397 
附录APython语言精要401

序言

前言
针对科学计算领域的Python开源库生态系统在过去10年中得到了飞速发展。2011年底,我深深地感觉到,由于缺乏集中的学习资源,刚刚接触数据分析和统计应用的Python程序员举步维艰。针对数据分析的关键项目(尤其是NumPy、matplotlib和pandas)已经很成熟了,也就是说,写一本专门介绍它们的图书貌似不会很快过时。因此,我下定决心要开始这样的一个写作项目。我在2007年刚开始用Python进行数据分析工作时就希望能够得到这样一本书。希望你也能觉得本书有用,同时也希望你能将书中介绍的那些工具高效地运用到实际工作中去。
本书的约定
本书使用了以下排版约定:
斜体(Italic)
用于新术语、URL、电子邮件地址、文件名与文件扩展名。
等宽字体(Constant width)
用于表明程序清单,以及在段落中引用的程序中的元素,如变量、函数名、数据库、数据类型、环境变量、语句、关键字等。
等宽粗体(Constant width bold)
用于表明命令,或者需要读者逐字输入的文本内容。
等宽斜体(Constant width italic)
用于表示需要使用用户提供的值或者由上下文决定的值来替代的文本内容。
注意: 代表一个技巧、建议或一般性说明。
警告: 代表一个警告或注意事项。
示例代码的使用
本书提供代码的目的是帮你快速完成工作。一般情况下,你可以在你的程序或文档中使用本书中的代码,而不必取得我们的许可,除非你想复制书中很大一部分代码。例如,你在编写程序时,用到了本书中的几个代码片段,这不必取得我们的许可。但若将O扲eilly图书中的代码制作成光盘并进行出售或传播,则需获得我们的许可。引用示例代码或书中内容来解答问题无需许可。将书中很大一部分的示例代码用于你个人的产品文档,这需要我们的许可。
如果你引用了本书的内容并标明版权归属声明,我们对此表示感谢,但这不是必需的。版权归属声明通常包括:标题、作者、出版社和ISBN号,例如:“Python for Data Analysis by William Wesley McKinney (O‘eilly). Copyright 2013 William Wesley McKinney, 978-1-449-31979-3”。
如果你认为你对示例代码的使用已经超出上述范围,或者你对是否需要获得示例代码的授权还不清楚,请随时联系我们:[email protected]。
联系我们
有关本书的任何建议和疑问,可以通过下列方式与我们取得联系:
美国:
O‘eilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们会在本书的网页中列出勘误表、示例和其他信息。可以通过http://oreil.ly/Python_for_Data_Analysis访问该页面。
要评论或询问本书的技术问题,请发送电子邮件到:
[email protected]y.com
想了解关于O‘eilly图书、课程、会议和新闻的更多信息,请访问以下网站:
http://www.oreilly.com.cn
http://www.oreilly.com
还可以通过以下网站关注我们:
我们在Facebook上的主页:http://facebook.com/oreilly
我们在Twitter上的主页:http://twitter.com/oreillymedia
我们在YouTube上的主页:http://www.youtube.com/oreillymedia

文摘

第1章
准备工作
本书主要内容
本书讲的是利用Python进行数据控制、处理、整理、分析等方面的具体细节和基本要点。同时,它也是利用Python进行科学计算的实用指南(专门针对数据密集型应用)。本书重点介绍了用于高效解决各种数据分析问题的Python语言和库。本书没有阐述如何利用Python实现具体的分析方法。
当书中出现“数据”时,究竟指的是什么呢?主要指的是结构化数据(structured data),这个故意含糊其辞的术语代指了所有通用格式的数据,例如:
多维数组(矩阵)。
表格型数据,其中各列可能是不同的类型(字符串、数值、日期等)。比如保存在关系型数据库中或以制表符/逗号为分隔符的文本文件中的那些数据。
通过关键列(对于SQL用户而言,就是主键和外键)相互联系的多个表。
间隔平均或不平均的时间序列。
这绝不是一个完整的列表。大部分数据集都能被转化为更加适合分析和建模的结构化形式,虽然有时这并不是很明显。如果不行的话,也可以将数据集的特征提取为某种结构化形式。例如,一组新闻文章可以被处理为一张词频表,而这张词频表就可以用于情感分析。
大部分电子表格软件(比如Microsoft Excel,它可能是世界上使用最广泛的数据分析工具了)的用户不会对此类数据感到陌生。
为什么要使用Python进行数据分析
许许多多的人(包括我自己)都很容易爱上Python这门语言。自从1991年诞生以来,Python现在已经成为最受欢迎的动态编程语言之一,其他还有Perl、Ruby等。由于拥有大量的Web框架(比如Rails(Ruby)和Django(Python)),最近几年非常流行使用Python和Ruby进行网站建设工作。这些语言常被称作脚本(scripting)语言,因为它们可以用于编写简短而粗糙的小程序(也就是脚本)。我个人并不喜欢“脚本语言”这个术语,因为它好像在说这些语言无法用于构建严谨的软件。在众多解释型语言中,Python最大的特点是拥有一个巨大而活跃的科学计算(scientific computing)社区。进入21世纪以来,在行业应用和学术研究中采用Python进行科学计算的势头越来越猛。
在数据分析和交互、探索性计算以及数据可视化等方面,Python将不可避免地接近于其他开源和商业的领域特定编程语言/工具,如R、MATLAB、SAS、Stata等。近年来,由于Python有不断改良的库(主要是pandas),使其成为数据处理任务的一大替代方案。结合其在通用编程方面的强大实力,我们完全可以只使用Python这一种语言去构建以数据为中心的应用程序。
把Python当做粘合剂
作为一个科学计算平台,Python的成功部分源于其能够轻松地集成C、C++以及Fortran代码。大部分现代计算环境都利用了一些Fortran和C库来实现线性代数、优选、积分、快速傅里叶变换以及其他诸如此类的算法。许多企业和国家实验室也利用Python来“粘合”那些已经用了30多年的遗留软件系统。
大多数软件都是由两部分代码组成的:少量需要占用大部分执行时间的代码,以及大量不经常执行的“粘合剂代码”。粘合剂代码的执行时间通常是微不足道的。开发人员的精力几乎都是花在优化计算瓶颈上面的,有时更是直接转用更低级的语言(比如C)。
最近这几年,Cython项目(http://cython.org)已经成为Python领域中创建编译型扩展以及对接C/C++代码的一大途径。
解决“两种语言”问题
很多组织通常都会用一种类似于领域特定的计算语言(如MATLAB和R)对新的想法进行研究、原型构建和测试,然后再将这些想法移植到某个更大的生产系统中去(可能是用Java、C#或C++编写的)。人们逐渐意识到,Python不仅适用于研究和原型构建,同时也适用于构建生产系统。我相信越来越多的企业也会这样看,因为研究人员和工程技术人员使用同一种编程工具将会给企业带来非常显著的组织效益。
为什么不选Python
虽然Python非常适合构建计算密集型科学应用程序以及几乎各种各样的通用系统,但它对于不少应用场景仍然力有不逮。
由于Python是一种解释型编程语言,因此大部分Python代码都要比用编译型语言(比如Java和C++)编写的代码运行慢得多。由于程序员的时间通常都比CPU时间值钱,因此许多人也愿意在这里做一些权衡。但是,在那些要求延迟非常小的应用程序中(例如高频交易系统),为了尽最大可能地优化性能,耗费时间使用诸如C++这样更低级、更低生产率的语言进行编程也是值得的。
对于高并发、多线程的应用程序而言(尤其是拥有许多计算密集型线程的应用程序),Python并不是一种理想的编程语言。这是因为Python有一个叫做全局解释器锁(Global Interpreter Lock,GIL)的东西,这是一种防止解释器同时执行多条Python字节码指令的机制。有关“为什么会存在GIL”的技术性原因超出了本书的范围,但是就目前来看,GIL并不会在短时间内消失。虽然很多大数据处理应用程序为了能在较短的时间内完成数据集的处理工作都需要运行在计算机集群上,但是仍然有一些情况需要用单进程多线程系统来解决。
这并不是说Python不能执行真正的多线程并行代码,只不过这些代码不能在单个Python进程中执行而已。比如说,Cython项目可以集成OpenMP(一个用于并行计算的C框架)以实现并行处理循环进而大幅度提高数值算法的速度

时间: 2024-10-13 14:39:29

总是在起头可是能怎么办呢 Python数据分析的相关文章

python数据分析笔记——数据加载与整理]

[ python数据分析笔记--数据加载与整理] https://mp.weixin.qq.com/s?__biz=MjM5MDM3Nzg0NA==&mid=2651588899&idx=4&sn=bf74cbf3cd26f434b73a581b6b96d9ac&chksm=bdbd1b388aca922ee87842d4444e8b6364de4f5e173cb805195a54f9ee073c6f5cb17724c363&mpshare=1&scene=

[Python数据分析]新股破板买入,赚钱几率如何?

这是本人一直比较好奇的问题,网上没搜到,最近在看python数据分析,正好自己动手做一下试试.作者对于python是零基础,需要从头学起. 在写本文时,作者也没有完成这个小分析目标,边学边做吧. ================================================================ Python基础: 中国大学Mooc,南京大学,张莉老师 -<用Python玩转数据> 了解基本的语法和常用函数就行了,其他的用的时候再搜. 财经数据源: TuShare

Python数据分析入门

Python数据分析入门 最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内容如下: 数据导入 导入本地的或者web端的CSV文件: 数据变换: 数据统计描述: 假设检验 单样本t检验: 可视化: 创建自定义函数. 数据导入 这是很关键的一步,为了后续的分析我们首先需要导入数据.通常来说,数据是CSV格式,就算不是,至少也可以转换成CSV格式.在Python中,我们的操作如

Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4节 透视表和交叉表 第5节 时间序列 第6节 日期的规范.频率以及移动 第7节 时区处理 第8节 时期及算术运算 第9节 重采样及频率转换 第10节 时间序列绘图 groupby 技术 一.实验简介 Python 数据分析(二)需要同学们先行学完 Python 数据分析(一)的课程. 对数据集进行分

Python数据分析必备Anaconda安装、快捷键、包安装

Python数据分析必备: 1.Anaconda操作 首先应该设置本地存放数据目录为工作目录,这样可以加载本地数据集到内存中 import os os.chdir("D:/BigData/Workspace/testdata/") #设置当前路径为工作路径 os.getcwd() #获取当前工作路径 2.安装Graphviz 摘录自官网: What is Graphviz? Graphviz is open source graph visualization software. Gr

python数据分析简略介绍

1.Python以其开发效率著称,致力用最短的代码完成,但是开发效率并不高,被称为"胶水语言".含义是耗时的核心代码用C/C++等更高效的语言编写,然后用python来粘合,以此来解决python的运行效率问题.但在数据任务上,python的运行效率和C/C++已经差不多了. 2.python基本命令自己要注意的几点: print u'a不等于1'   #在输出中文前可以加上u 3.python中的数据结构 4个内建的数据结构:List.Tuple.Dictionary.Set,可以统

python 数据分析,R语言与数据挖掘|学习资料分享 05

python 数据分析 为什么选 python 做数据分析? 在数据分析和交互.探索性计算以及数据可视化等方面,Python 将不可避免地接近于其他开源和商业的领域特定编程语言/工具,如R.MATLAB.SAS.Stata等.近年来,由于 Python 有不断改良的库(主要是 pandas),使其成为数据处理任务的一大替代方案.结合其在通用编程方面的强大实力,我们完全可以只使用 Python 这一种语言去构建以数据为中心的应用程序. R语言是由 AT&T 贝尔实验室开发的一种用来进行数据探索.统

基于Python数据分析与机器学习案例实战教程

课程--基于Python数据分析与机器学习案例实战教程 分享网盘下载--https://pan.baidu.com/s/1jHSaRAY 密码: xk37 课程背景基于数据分析与机器学习领域,使用python作为课程的实战语言,随着大数据与人工智能领域日益火爆,数据分析和机器学习建模成了当下最热门的技术,课程旨在帮助同学们快速掌握python数据分析包以及经典机器学习算法并通过对真实数据集分析进行实战演示. 课程风格通俗易懂,基于真实数据集案例实战. 主体课程分成三个大模块 (1)python数

Python数据分析I

Python数据分析概述 数据分析的含义与目标 统计分析方法 提取有用信息 研究.概括.总结 Python与数据分析 Python: Guido Van Rossum Christmas Holiday, 1989 特点:简介 开发效率搞 运算速度慢(相对于C++和Java) 胶水特性(集成C语言) 数据分析:numpy.scipy.matplotlib.pandas.scikit-learn.keras Python数据分析大家族 numpy(Numeric Python): 数据结构基础.是