python-pandas-数据分析技术与编程方法讲座

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

PythonPandas数据分析技术与编程方法Python入门开发环境IDEpandas数据分析库数据规整化数据聚合与分组实例分析——泰坦尼克之灾目录Python是自由软件丰硕成果之一创始人GuidovanRossum时间地点1989年圣诞节期间在阿姆斯特丹创造名字来源大蟒蛇飞行马戏团爱好者渊源从ABC发展而来主要受Modula-3的影响结合了Unixshell和C的习惯Python的历史Python是一种面向对象的解释性语言免费的可移植的可扩展的简单的万能的Python的语言特点Python是一种语法简单的脚本语言运行方式命令行、交互式、图形集成环境面向对象甚至还支持异常处理模块和包与Java类似,还开发了JPython语言扩展可以用C/C++/Java编写新的语言模块丰富的库数据分析/科学计算/机器学习/GUI/......Python的语法特点它使程序员的生活更有趣简单易学功能丰富谁在使用Python呢?•GoogleNASA豆瓣......Python的魅力当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。Python解释器CPython当我们从Python官方网站下载并安装好Python2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器。Python解释器IPythonIPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。CPython用作为提示符,而IPython用In[序号]:作为提示符。Python解释器PyPyPyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。Python解释器JythonJython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。Python解释器IronPythonIronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。Python解释器OS:64位windows7Version:python-2.7.11.msi注意:1.安装时勾选addtoenvironment,默认安装pip2.添加pip环境变量path=C:\Python27\ScriptsPyPI(PythonPackageIndex)是python官方的第三方库的仓库,pip是一个安装和管理Python包的工具。Windows下Python安装与配置pythonshellIDLE(PythonGUI)ipythonNotepad++PyCharmPython开发环境eclipse+PyDevIDE配置PyDevInterpreter打开Window-Preferences.对话框,选择PyDev-InterpreterPython,点击New,从Python的安装路径下选择Python.exe。也可以点AutoConfig自动配置,会搜索安装好的python自动配置。Python开发环境Python开发环境Python文件不支持中文注释问题:#coding=encodingname#!/usr/bin/python#-*-coding:encodingname-*-#!/usr/bin/python#vim:setfileencoding=encodingname:eg:#coding=utf-8特别注意:Python文件编码声明Python中行首的空白是重要的,它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。if0==1:print'Weareinaworldofarithmeticpain'print'Thankyouforplaying'将输出Thankyouforplayingif0==1:print'Weareinaworldofarithmeticpain'print'Thankyouforplaying'将不会有输出特别注意:缩进可以使用空格或制表符产生缩进,两个空格或四个空格都是可以的,不过一般建议使用一个制表符TAB产生缩进,你的程序应该固定使用一种缩进规则。Python代码缩进决定了代码的逻辑关系,而不仅仅是为了好看!!!特别注意:缩进pandas数据分析numpy科学计算包scipy科学计算包matplotlib画图/表scikit-learn机器学习库Seaborn数据可视化工具包常用扩展包Python的一个数据分析包AQRCapitalManagement于2008年4月开发2009年底开源目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。约定俗成的导入惯例:In[1]:frompandasimportSeries,DataFrameIn[2]:importpandasaspdPandas1.SeriesSeries是一维标记数组,可以存储任意数据类型,如整型、字符串、浮点型和Python对象等,轴标一般指索引。SeriesNumpy中的一维arrayPython基本数据结构List区别:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。Pandas中的数据结构2.DataFrameDataFrame是二维标记数据结构,列可以是不同的数据类型。它是最常用的pandas对象,像Series一样可以接收多种输入:lists、dicts、series和DataFrame等。初始化对象时,除了数据还可以传index和columns这两个参数。Pandas中的数据结构3.PanelPanel很少使用,然而是很重要的三维数据容器。Paneldata源于经济学,也是pan(el)-da(ta)-s的来源。Pandas中的数据结构4.Panel4DPanel4D是像Panel一样的4维容器,作为N维容器的一个测试。Panel4D是Panel的一个子集,因此Panel的大多数方法可用于4D,但以下方法不可用:join,to_excel,to_frame,to_sparse,groupby。Pandas中的数据结构5.PanelNDPanelND是一个拥有factory集合,可以创建像Panel4D一样N维命名容器的模块。Pandas中的数据结构通过传递一个list对象来创建Series,默认创建整型索引;In[4]:obj=Series([4,7,-5,3])创建一个带有索引来确定每一个数据点的Series;In[8]:obj2=Series([4,7,-5,3],index=['d','b','a','c'])如果你有一些数据在一个Python字典中,你可以通过传递字典来创建一个Series;In[11]:sdata={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}In[12]:obj3=Series(sdata)In[14]:states=['California','Ohio','Oregon','Texas']In[15]:obj4=Series(sdata,index=states)Series相关操作——创建通过一个布尔数组过滤,纯量乘法,或使用数学函数,将会保持索引和值间的关联:Series相关操作Series是一个定长的,有序的字典,因为它把索引和值映射起来了。它可以适用于许多期望一个字典的函数:Series相关操作在pandas中用函数isnull和notnull来检测数据丢失:pd.isnull(obj4)pd.notnull(obj4)Series也提供了这些函数的实例方法:obj4.isnull()Series相关操作Series的一个重要功能是在算术运算中它会自动对齐不同索引的数据:Series相关操作Series对象本身和它的索引都有一个name属性,它和pandas的其它一些关键功能整合在一起:Series相关操作从坐标轴删除条目,drop方法将会返回一个新的对象并从坐标轴中删除指定的一个或多个值:Series相关操作Series除了可以使用索引值,也可以仅使用整数来索引:Series相关操作直方图:Series相关操作字符串方法:Series相关操作通过传递一个NumPyarray,时间索引以及列标签来创建一个DataFrame;用一个相等长度列表的字典;它的索引会自动分配,并且对列进行了排序;如果设定了一个列的顺序,DataFrame的列将会精确的按照所传递的顺序排列;DataFrame相关操作——创建通过一个嵌套的字典格式创建DataFrame:外部键会被解释为列索引,内部键会被解释为行索引;内部字典的键被结合并排序来形成结果的索引;可以对结果转置:DataFrame相关操作——创建DataFrame中的一列可以通过字典记法或属性来检索:注意,返回的Series包含和DataFrame相同的索引,并它们的name属性也被正确的设置了。DataFrame相关操作——检索为了使DataFrame可以在行上进行标签索引,将介绍特殊的索引字段ix。这使你可以从DataFrame选择一个行和列的子集,这也是一种不是很冗长的重新索引的方法。DataFrame相关操作——检索对于DataFrame,有很多方法来选择和重排包含在pandas对象中的数据。DataFrame相关操作——检索列可以通过赋值来修改。例如,空的‘debt’列可以通过一个纯量或一个数组来赋值;注意:通过列表或数组给一列赋值时,所赋的值的长度必须和DataFrame的长度相匹配。使用Series来赋值,它会代替在DataFrame中精确匹配的索引的值,并在所有的空洞插入丢失数据NaN;给一个不存在的列赋值,将会创建一个新的列;DataFrame相关操作——赋值pandas的最重要的特性之一是在具有不同索引的对象间进行算术运算。当把对象加起来时,如果有任何索引对不相同的话,在结果中将会把各自的索引联合起来。DataFrame相关操作——算术运算在不同索引对象间的算术运算,当一个轴标签在另一个对象中找不到时,你可能想要填充一个特定的值,如0。Howtodoit?DataFrame相关操作对于DataFrame,可以从任何坐标轴删除索引值:像字典一样del关键字将会删除列:DataFrame相关操作写入excel文件:df.to_excel('foo.xlsx',sheet_name='Sheet1')从excel文件中读取:pd.read_excel('foo.xlsx','Sheet1',index_col=None,na_values=['NA'])写入csv文件:df.to_csv('foo.csv'

1 / 106
下载文档,编辑使用

©2015-2020 m.111doc.com 三一刀客.

备案号:赣ICP备18015867号-1 客服联系 QQ:2149211541

×
保存成功