Python科学计算与数据处理.ppt
- 文档编号:2643953
- 上传时间:2022-11-04
- 格式:PPT
- 页数:115
- 大小:487KB
Python科学计算与数据处理.ppt
《Python科学计算与数据处理.ppt》由会员分享,可在线阅读,更多相关《Python科学计算与数据处理.ppt(115页珍藏版)》请在冰豆网上搜索。
1pandas入门目录opandas的数据结构介绍nSeriesnDataFramen索引对象o基本功能n重新索引n丢弃指定轴上的项n索引、选取和过滤n算术运算和数据对齐n函数应用和映射n排序和排名n带有重复值的轴索引2目录o汇总和计算描述统计n相关系数与协方差n唯一值、值计数以及成员资格o处理缺失数据n滤除缺失数据n填充缺失数据o层次化索引n重排分级顺序n根据级别汇总统计n使用DataFrame的列o其他有关pandas的话题34pandas含有使数据分析工作变得更快更简单的高级数据结构和操作工具。
它是基于NumPy构建的,让以NumPy为中心的应用变得更加简单。
因为Series和DataFrame用的次数非常多,所以将其引入本地命名空间中会更方便。
frompandasimportSeries,DataFrameimportpandasaspdpandas的数据结构介绍oSeriesSeries是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。
仅由一组数据即可产生最简单的Series:
5obj=Series(4,7,-5,3)obj04172-533dtype:
int64pandas的数据结构介绍Series的字符串表现形式为:
索引在左边,值在右边。
由于没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引。
可以通过Series的values和index属性获取其数组表示形式和索引对象:
6obj.valuesarray(4,7,-5,3,dtype=int64)obj.indexInt64Index(0,1,2,3,dtype=int64)pandas的数据结构介绍通常希望所创建的Series带有一个可以对各个数据点进行标记的索引:
7obj2=Series(4,7,-5,3,index=d,b,a,c)obj2d4b7a-5c3dtype:
int64obj2.indexIndex(ud,ub,ua,uc,dtype=object)pandas的数据结构介绍与普通NumPy数组相比,可以通过索引的方式选取Series中的单个或一组值:
8obj2a-5obj2d=6obj2c,a,dc3a-5d6dtype:
int64pandas的数据结构介绍NumPy数组运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引和值之间的链接:
9obj2obj2obj20obj2*2np.exp(obj2)d403.428793b1096.633158a0.006738c20.085537dtype:
float64pandas的数据结构介绍还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。
它可以用在许多原本需要字典参数的函数中:
10binobj2Trueeinobj2Falsepandas的数据结构介绍11如果数据被存放在一个Python字典中,也可以直接通过这个字典来创建Series:
sdata=Ohio:
35000,Texas:
71000,Oregon:
16000,Utah:
5000obj3=Series(sdata)obj3Ohio35000Oregon16000Texas71000Utah5000dtype:
int64pandas的数据结构介绍如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。
在例子中,sdata跟states索引相匹配的那3个值会被找出来并放到相应的位置上,但由于“California”所对应的sdata值找不到,所以其结果就为NaN(即“非数字”(notanumber).12states=California,Ohio,Oregon,Texasobj4=Series(sdata,index=states)obj4CaliforniaNaNOhio35000Oregon16000Texas71000dtype:
float64pandas的数据结构介绍在pandas中使用NaN表示缺失(missing)或NA值。
pandas的isnull和notnull函数可用于检测缺失数据:
13pd.isnull(obj4)#Series也有类似的实例方法:
CaliforniaTrue#obj4.isnull()OhioFalseOregonFalseTexasFalsedtype:
boolpd.notnull(obj4)CaliforniaFalseOhioTrueOregonTrueTexasTruedtype:
boolpandas的数据结构介绍对于许多应用而言,Series域重要的一个功能是:
它在算术运算中会自动对齐不同索引的数据。
14obj3obj4obj3+obj4CaliforniaNaNOhio70000Oregon32000Texas142000UtahNaNdtype:
float64pandas的数据结构介绍Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切:
15obj4.name=populationobj4.index.name=stateobj4stateCaliforniaNaNOhio35000Oregon16000Texas71000Name:
population,dtype:
float64pandas的数据结构介绍16Series的索引可以通过赋值的方式就地修改:
obj04172-533obj.index=Bob,Steve,Jeff,RyanobjBob4Steve7Jeff-5Ryan3dtype:
int64pandas的数据结构介绍17oDataFrameDataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。
DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。
跟其他类似的数据结构相比(如R的data.frame),DataFrame中面向行和面向列的操作基本上是平衡的。
其实,DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或別的一维数据结构)。
pandas的数据结构介绍构建DataFrame的办法有很多,最常用的一种是直接传入一个由等长列表或NumPy数组组成的字典:
结果DataFrame会自动加上索引(跟Series一样),且全部列会被有序悱列.18data=state:
Ohio,Ohio,Ohio,Nevada,Nevada,year:
2000,2001,2002,2001,2002,pop:
1.5,1.7,3.6,2.4,2.9frame=DataFrame(data)framepandas的数据结构介绍如果指定了列序列,则DataFrame的列就会按照指定顺序迸行排列:
跟Series一样,如果传入的列在数据中找不到,就会产生NA值:
19DataFrame(data,columns=year,state,pop)frame2=DataFrame(data,columns=year,state,pop,debt,index=one,two,three,four,five)frame2frame2.columnsIndex(uyear,ustate,upop,udebt,dtype=object)pandas的数据结构介绍通过类似字典标记的方式或属性的方式,可以将DataFrame的列获取为一个Series:
20frame2stateoneOhiotwoOhiothreeOhiofourNevadafiveNevadaName:
state,dtype:
objectframe2.yearone2000two2001three2002four2001five2002Name:
year,dtype:
int64pandas的数据结构介绍注意,返冋的Series拥有原DataFrame相同的索引,且其name属性也已经被相应地设置好了。
行也可以通过位置或名称的方式进行获取,比如用索引字段ix:
21frame2.ixthreeyear2002stateOhiopop3.6debtNaNName:
three,dtype:
objectpandas的数据结构介绍列可以通过赋值的方式进行修改。
例如,可以给那个空的“debt”列赋上一个标量值或一组值:
22frame2debt=16.5frame2frame2debt=np.arange(5)frame2pandas的数据结构介绍23将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配。
如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位都将被填上缺失值:
val=Series(-1.2,-1.5,-1.7,index=two,four,five)frame2debt=valframe2pandas的数据结构介绍为不存在的列赋值会创建出一个新列。
关键字del用于删除列:
24frame2eastern=frame2.state=Ohioframe2delframe2easternframe2.columnsIndex(uyear,ustate,upop,udebt,dtype=object)pandas的数据结构介绍另一种常见的数据形式是嵌套字典(也就是字典的字典):
如果将它传给DataFrame,它就会被解释为:
外层字典的键作为列,内层键则作为行索引:
25pop=Nevada:
2001:
2.4,2002:
2.9,Ohio:
2000:
1.5,2001:
1.7,2002:
3.6frame3=DataFrame(pop)frame3frame3.T#也可以对该结果进行转置pandas的数据结构介绍内层字典的键会被合并、排序以形成最终的索引。
如果显式指定了索引,则不会这样:
由Series组成的字典差不多也是一样的用法:
26DataFrame(pop,index=2001,2002,2003)frame3pdata=Ohio:
frame3Ohio:
-1,Nevada:
frame3Nevada:
2DataFrame(pdata)pandas的数据结构介绍27如果设置了DataFrame的index和columns的name属性,则这些信息也会被显示出来:
跟Series一样,values属性也会以二维ndarray的形式返回DataFrame中的数据:
frame3.index.name=year;frame3.columns.name=stateframe3frame3.index.name=year;frame3.columns.name=stateframe3.valuesarray(nan,1.5,2.4,1.7,2.9,3.6)pandas的数据结构介绍28如果DataFrame各列的数据类型不同,则值数组的数据类型就会选用能兼容所有列的数据类型:
frame2frame2.valuesarray(2000L,Ohio,1.5,nan,2001L,Ohio,1.7,-1.2,2002L,Ohio,3.6,nan,2001L,Nevada,2.4,-1.5,2002L,Nevada,2.9,-1.7,dtype=object)pandas的数据结构介绍o索引对象pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。
构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index:
29obj=Series(range(3),index=a,b,c)index=obj.indexindexIndex(ua,ub,uc,dtype=object)index1:
Index(ub,uc,dtype=object)pandas的数据结构介绍Index对象是不可修改的(immutable),因此用户不能对其进行修改:
不可修改性非常重要,因为这样才能使Index对象在多个数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 科学 计算 数据处理