ImageVerifierCode 换一换
格式:PPTX , 页数:70 ,大小:1.64MB ,
文档编号:4768004      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4768004.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《Python程序设计》教学课件—11数据处理.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《Python程序设计》教学课件—11数据处理.pptx

1、11.1.1 安装和导入NumPy库NumPy是Python语言的扩展库,因此需要额外安装NumPy库。1.安装NumPy模块输入下面的安装命令:pip install numpy2.导入NumPy模块使用下面的语句导入NumPy库:import numpy as np#业界提倡的模块导入语法11.1.2 创建ndarray数组1.数组对象的创建array()方法的语法格式如下:np.array(object,dtype=数据类型,order=C|F|A)【例11-1】利用array()方法创建一维数组和二维数组。import numpy as npa=1,2,3,4#创建列表对象na=np.

2、array(a)#创建一维数组b=11,22,33,55,66,77#创建二维嵌套列表nb=np.array(b)#创建二维数组print(na:,na)print(nb:,nb)在IDLE中的运行结果如图11-1所示。【例11-2】利用array()方法创建一维数组,数组元素是复数类型。import numpy as nparray=np.array(1,2,3,dtype=complex)#dtype为复数print(array)在IDLE中的运行结果如下:1.+0.j 2.+0.j 3.+0.j2.显示数组维度的shape属性使用shape属性查看数组维度(也称形状)的大小,其语法格式如

3、下:arr.shape例如,元组(3,)表示一个一维数组,只含有3个元素。例如,元组(3,4)表示一个二维数组,其中第一个维度中有3个元素,第二个维度中有4个元素。【例11-3】用shape属性显示一维数组。import numpy as npa=np.array(1,2,3)print(a.shape)#输出(3,)【例11-4】用shape属性显示二维数组。import numpy as npb=np.array(1,2,3,3,4,5)print(b.shape)#输出(2,3)3.数组元素的总个数属性size数组元素的总个数属性的语法格式如下:arr.size【例11-5】使用size

4、属性显示数组元素的总个数。import numpy as npa=np.eye(3,3,0)#3x3对角为1的float矩阵,dtype默认为floatprint(a:,a)print(a.size:,a.size)#显示a.size:9print(a.shape:,a.shape)#显示a.shape:(3,3)11.1.3 ndarray数组的数据类型1.ndarray的数据类型ndarray的数据类型,见表11-1。2.数据类型的查看可以使用dtype属性查看数组的类型。其语法格式为:arr.dtype3.转换数据类型可以使用astype()方法将一个数组的数据类型转换为另一个数据类型。

5、其语法格式如下:arr.astype(np.类型)或arr.astype(类型)【例11-6】创建数组对象,查看数组对象的类型,然后从int32数据类型转换为float64数据类型。import numpy as npa=np.array(1,2,3)print(a.dtype)#显示int32newa=a.astype(np.float64)#newa=a.astype(float64)print(newa.dtype)#显示float6411.1.4 ndarray数组的索引与切片1.一维数组的索引和切片(1)索引数组通过方括号运算符和索引对数组中的元素进行访问。索引的语法格式如下:数组名

6、index(2)切片1)用冒号切片。用冒号切片是指通过方括号中的元素位置索引,用冒号分隔索引的区间范围来进行切片操作。其语法格式如下:数组名start:stop:step【例11-7】一维数组的索引与使用冒号切片示例。import numpy as npa=np.arange(10)print(a=,a)#a=0 1 2 3 4 5 6 7 8 9print(a3=,a3)#a3=3print(a5:8=,a5:8)#a5:8=5 6 7print(a0:10:2=,a0:10:2)#a0:10:2=0 2 4 6 8print(a:5=,a:5)#a:5=0 1 2 3 4print(a:-

7、1=,a:-1)#a:-1=0 1 2 3 4 5 6 7 8print(a6:1:-2=,a6:1:-2)#a6:1:-2=6 4 2print(a:-1=,a:-1)#a:-1=9 8 7 6 5 4 3 2 1 0b=a1:5b1=100print(a=,a)#a=0 1 100 3 4 5 6 7 8 9print(b=,b)#b=1 100 3 42)整数列表切片。整数列表切片法的语法格式如下。数组名n1,n2,.,nx【例11-8】一维数组整数列表切片法示例。import numpy as np a=np.array(aa,bb,cc,dd,ee,ff)b=a0,2,3,5 aar

8、ray(aa,bb,cc,dd,ee,ff,dtype=barray(aa,cc,dd,ff,dtype=b2=22 a2=33 aarray(aa,bb,33,dd,ee,ff,dtype=barray(aa,cc,22,ff,dtype=U2)2.二维数组的索引和切片(1)索引二维数组对于二维数组,通过索引可以得到低一级维度的元素,即每个索引位置上对应的元素是一维数组。只须将数组中的每一行每一列分别看作一个列表,参照一维数组的索引、切片的方法。【例11-9】二维数组索引与切片示例。import numpy as npa=np.array(1,2,3,4,5,6,7,8,9)print(a=

9、,a)print(a1=,a1)#索引a1,得到一维数组print(a1:=,a1:)#从数组索引a1:处开始切片,得到二维数组运行结果如图11-2所示。(2)访问二维数组的单个元素对于二维数组,如果要访问数组中的单个元素,可以通过以下两种方法。数组名x,y或数组名xy索引序号都是从0开始。行索引x是数组中的第x+1行的列表,列索引y是该行列表中的第y+1个元素。【例11-10】访问二维数组的单个元素。import numpy as npa=np.array(1,2,3,4,5,6,7,8,9)print(a02=,a02)#显示3print(a12=,a12)#显示63.多维数组的索引和切片

10、(1)索引多维数组对于多维数组的索引,返回的对象是降低一级维度之后的ndarray。【例11-11】针对一个223的三维数组,返回一个23的二维数组。import numpy as npa=np.array(1,2,3,4,5,6,7,8,9,10,11,12)#创建三维数组print(a=,a)print(a0=,a0)#索引返回二维数组print(a1=,a1)#索引返回二维数组print(a:=,a:)#切片返回原数组的一部分print(a0:1=,a0:1)#切片运行结果如图11-3所示。(2)访问多维数组的单个元素在多维数组中,中括号内的索引用逗号分隔。以三维数组为例,可以通过以下两

11、种方法获取数组中的单个元素:数组名x,y,z或数组名xyz例如,获取三维数组a的第1个元素,则写为a0,0,0或a000。【例11-12】三维数组的索引和切片操作示例。创建一个234的三维数组,用来表示一个2层楼,每层楼的房间排列为3行4列,通过索引切片操作获得指定房间。import numpy as npa=np.arange(24).reshape(2,3,4)#创建三维数组print(a=,a)print(a0,0,0=,a0,0,0)#选取第1层楼,第1行第1列的房间,显示0print(a:,0,0=,a:,0,0)#选取所有楼层的第1行第1列的房间,显示 0 12print(a0,:

12、,:=,a0,:,:)#选取第1层楼的所有房间print(a0,.=,a0,.)#选取第1层楼的所有房间,其中多个连续的“:”可以用一个“.”代替print(a0,1,=,a0,1,)#选取第1层楼的第1行的所有房间print(a0,1,:2=,a0,1,:2)#选取第1层楼的第1行的部分房间,从第1个开始到最后(不包括最后一个),间隔2个print(a.,1=,a.,1)#选取所有楼层中位于第2列的房间print(a:,1=,a:,1)#选取所有楼层中位于第2行的房间print(a0,:,1=,a0,:,1)#选取第1层楼中位于第2列的房间print(a0,:,-1=,a0,:,-1)#选取

13、第1层楼中所有位于最后一列的房间print(a0,:-1,-1=,a0,:-1,-1)#反向选取第1层楼中所有位于最后一列的房间print(a:-1=,a:-1)#把第1层楼和第2层楼的房间交换运行结果如图11-4所示。11.1.5 ndarray数组的运算1.算术运算NumPy还为数组的算术运算定义了各种ufunc函数,见表11-2。例如,如果两个数组a和b的维度相同,即满足a.shape=b.shape,那么ab的结果就是a与b数组对应位相乘。这要求维数相同,且各维度的长度相同。【例11-13】两个数组相乘示例。import numpy as npa=np.array(1,2,3,4)b=

14、np.array(10,20,30,40)c=a*b#c=np.multiply(a,b)#或者用下面两行语句#c=np.zeros(4,),dtype=np.int32)#创建shape为4的整型数组#np.multiply(a,b,c)#c数组必须已经创建print(c)运行结果为:10 40 90 1602.比较运算NumPy还为数组的比较运算定义了各种ufunc函数,见表11-3。【例11-14】比较两个数组。import numpy as npa=np.array(1,2,3,4)b=np.array(0,5,-2,8)c=a 1,a 500)#输出大于500的值print(s*2+

15、10)#算术运算print(np.sqrt(s)#计算各个元素的平方根#两个对象相加ser01=pd.Series(1,2,3,4,index=101,102,104,105)ser02=pd.Series(4,5,6,7,8,index=101,102,103,105,106)print(ser01+ser02)运行结果如图11-10所示。11.2.3 Pandas的DataFrame对象1.创建DataFrame对象创建DataFrame对象的语法格式如下:pd.DataFrame(data,index=行索引,columns=列索引)(1)从列表创建DataFrame对象【例11-24】

16、从列表创建DataFrame对象示例。import pandas as pddata=101,张三,girl,18,102,李四,boy,20,103,王五,girl,19#创建二维列表#从列表创建DataFrame对象,省略行索引和列索引df=pd.DataFrame(data)#与上一行的功能相同#df=pd.DataFrame(data,index=range(0,3),columns=range(0,4)print(df)data=101,张三,girl,18,102,李四,boy,20,103,王五,girl,19#创建一维列表df=pd.DataFrame(data)#从列表创建D

17、ataFrame对象print(df)运行结果如图11-11所示。(2)从字典创建DataFrame对象【例11-25】从字典创建DataFrame对象示例。import pandas as pddata=序号:101,102,103,姓名:张三,李四,王五,性别:girl,boy,girl,年龄:18,20,19#创建字典df=pd.DataFrame(data)#指定行索引print(df)运行结果如图11-12所示。【例11-26】从字典创建DataFrame对象,并且指定行、列索引。把例11-25的df语句改为:df=pd.DataFrame(data,index=第1行,第2行,第3

18、行,columns=序号,姓名,年龄,身高,性别)print(df)因字典中没有“身高”,运行结果如图11-13所示。【例11-27】用嵌套字典创建DataFrame对象。import pandas as pddata=工资:2017:30,2018:50,2019:45,2020:35,奖金:2018:15,2019:25,2020:10,支出:2017:-30,2018:-20,2019:-45,2020:-35df=pd.DataFrame(data,index=2020,2019,2018,2017)#指定行索引print(df)运行结果如图11-14所示。2.获取DataFrame的

19、常用属性(1)获取值语法格式如下:df.values#返回二维数组形式,元素之间用空格分隔df.values行下标#返回一维数组形式,元素之间用空格分隔df.values行下标,列下标#返回元素,一般是标量df.mean(0)#参数0表示求列平均值df.mean(1)#参数1表示求行平均值(2)获取行索引语法格式如下:df.index#返回Series对象df.index.values#返回数组,元素之间用空格分隔df.index.values.tolist()#返回列表,元素之间用逗号分隔df.index行下标#返回元素,一般是标量(3)获取列索引语法格式如下:df.columns#返回Se

20、ries对象df.columns.values#返回数组,元素之间用空格分隔df.columns.values.tolist()#返回列表,元素之间用逗号分隔df.columns列下标#返回元素,一般是标量(4)获取元素总数通过该对象的size属性获取该对象的元素总数。语法格式如下:df.size(5)获取维度信息获取维度信息使用该对象的shape属性,语法格式如下:df.shape(6)获取行数获取行数的语法格式如下:df.shape0或len(df.index)(7)获取列数获取列数的语法格式如下:df.shape1或len(df.columns)或df.columns.size【例11-

21、28】获取DataFrame对象中的常用属性。import pandas as pddf=pd.DataFrame(101,张三,girl,18,102,李四,boy,20,103,王五,girl,19,index=1,2,3,columns=序号,姓名,性别,年龄)print(df.values=)print(df.values)#所有值,返回二维数组print(df.values1=,df.values1)#返回下标是1的值,返回一维数组print(df.values1,2=,df.values1,2)#返回下标是1,2的元素,是标量print(-*50)print(df.index=,d

22、f.index)#行索引,返回Series对象print(df.index.values=,df.index.values)#返回数组,元素之间用空格分隔print(df.index.values.tolist()=,df.index.values.tolist()#返回列表,元素之间用逗号分隔print(df.index1=,df.index1)#行索引,返回行下标是1(第2行)的元素print(-*50)print(df.columns=,df.columns)#列索引,返回Series对象colname=df.columns.values#返回数组,元素之间用空格分隔print(df.c

23、olumns.values=,colname)colname=df.columns.values.tolist()#返回列表,元素之间用逗号分隔print(df.columns.values.tolist()=,colname)print(df.columns2=,df.columns2)#列索引,返回列下标是2(第3列)的元素print(df.size=,df.size)#元素总个数print(df.shape=,df.shape)#形状信息print(df.shape0=,df.shape0,len(df.index)#行数print(df.shape1=,df.shape1,len(df

24、.columns)#列数运行结果如图11-15所示。3.DataFrame的head()、tail()和describe()方法DataFrame对象的head()方法返回开头前n行,tail()方法返回最后n行。如果没有设定n,则默认值为5行。其语法格式如下:df.head(n)df.tail(n)DataFrame对象的describe()方法显示每栏的统计数据。该方法只对数值型栏作统计,统计量包括个数、均值、标准差、最小值、25-50-75百分数值、最大值。一般用于在数据分析前先查看数据是否有缺失,数据是否有异常等。其语法格式如下:df.describe()查看各个字段的信息,其语法格式

25、为:df.info()【例11-29】DataFrame对象中的常用方法示例。import pandas as pddf=pd.DataFrame(101,张三,girl,18,102,李四,boy,20,103,王五,girl,19,index=1,2,3,columns=序号,姓名,性别,年龄)print(df.head(2)=)print(df.head(2)#开头前2行print(df.tail()=)print(df.tail()#最后5行print(df.describe()#统计运行结果如图11-16所示。4.获取指定的行、列(1)获取指定的行获取DataFrame对象的某行,不

26、能直接索引。需要使用loc或iloc存取器,通过行索引获取指定的行,结果的返回为Series对象,并且包含列名。其语法格式如下:df.loc行索引名df.iloc行下标loc与iloc的功能相同,iloc只能使用整数下标。【例11-30】针对摆地摊一天的销售情况,按要求获取指定的行。import pandas as pddata=11,老冰棍,2,12,绿舌头,4,13,棒棒冰,1,15,冰工厂,3,17,脸雪糕,2idx=2020-06-01,2020-06-02,2020-06-03,2020-06-04,2020-06-05#行名col=编号,名称,销售数量#列名df=pd.DataFr

27、ame(data,index=idx,columns=col)#创建Dataframeprint(df)print(-*50)print(df.loc2020-06-02=)indexname=df.loc2020-06-02#返回Series对象print(indexname)print(-*50)print(df.iloc2=)indexname=df.iloc2#返回Series对象print(indexname)print(type(indexname)#显示返回的数据类型运行结果如图11-17所示。(2)获取指定的列语法格式为:df列索引名例如,例11-30中的df名称,得到的是“名

28、称”列的一列数据,返回的是一个Series对象,包括行索引。DataFrame中可以使用布尔型数组选取行,例如选取“销售数量”列中值大于2的行,代码为:print(dfdf销售数量2)DataFrame不支持通过列的下标来索引,但是可以借助列索引属性实现用下标的间接索引。例如,获得第1列:#col0=df0#这样直接使用下标将报错#先通过列下标获得列索引名df.columns列下标,再用列索引名实现索引col0=dfdf.columns0【例11-31】获取指定的列。在例11-30的基础上增加下面的代码:print(销售数量2的行:)print(dfdf销售数量2)print(df名称=)co

29、lname=df名称#返回Series对象print(colname)print(-*50)print(df%s=%df.columns2)print(dfdf.columns2)运行结果如图11-15所示。5.DataFrame的切片(1)行切片例如,例11-31中,通过iloc0:3切片,左闭右开,即切取第1行、第2行和第3行。df_row=df.iloc0:3例如,例11-31中,用下标组成列表0,2,3传入iloc中,即切取第1行,第3行和第4行。df_row=df.iloc0,2,3例如,例11-31中,通过行的下标位置df1:3切片,左闭右开,即切取第2行和第3行。df_row=d

30、f1:3(2)列切片例如:df_col=dfdf.columns0:3#切取第1列、第2列和第3列df_col=df编号,销售数量#切取列表中列出的列,即编号、销售数量这两列(3)局部切片例如:df_item=df.loc2020-06-01,2020-06-03,2020-06-04,名称,销售数量例如,下面的代码,切取第1行和第2行,“编号”“销售数量”列。df_item=df0:2编号,销售数量【例11-32】切片的完整示例。import pandas as pddata=11,老冰棍,2,12,绿舌头,4,13,棒棒冰,1,15,冰工厂,3,17,脸雪糕,2idx=2020-06-01

31、,2020-06-02,2020-06-03,2020-06-04,2020-06-05#行名col=编号,名称,销售数量#列名df=pd.DataFrame(data,index=idx,columns=col)#创建Dataframeprint(df.iloc0:3=)df_row=df.iloc0:3print(df_row)print(-*50)print(df.iloc0,2,3=)df_row=df.iloc0,2,3print(df_row)print(df1:3=)df_row=df1:3print(df_row)print(+*50)df_col=dfdf.columns0:

32、3print(df_col)print(-*50)df_col=df编号,销售数量print(df_col)print(+*50)df_item=df.loc2020-06-01,2020-06-03,2020-06-04,名称,销售数量print(df_item)print(-*50)df_item=df0:2编号,销售数量print(df_item)print(type(df_item)#显示获得切片的数据类型运行结果如图11-16所示。6.获取某位置上的元素(1)通过行索引、列索引定位例如,获取例11-32中的“棒棒冰”元素,因该元素的行索引是“2020-06-03”,列索引是“名称”,

33、代码为:item=df.loc2020-06-03名称(2)通过at存取器方法例如,还是获取例11-32中的“棒棒冰”元素,代码为:item=df.at2020-06-03,名称(3)通过iat存取器例如,仍然获取例11-32中的“棒棒冰”元素,该元素的下标是2,1,代码为:item=df.iat2,1用iat存取器可以修改该元素的值,例如:df.iat2,1=小布丁7.修改列名和行名修改列名,其形式如下:df.columns=col1,col2,col3修改行名,其形式如下:df.index=row1,row2,row3,row4,row58.增加行、列(1)增加行其语法格式如下:df.ap

34、pend(被添加的DataFrame对象)【例11-33】在例11-32的df对象中添加两行新行。添加下面的代码:data_new=20,冰淇淋,5,14,酸奶块,4#两行的列表idx_new=2020-06-05,2020-06-11#行索引df_new=pd.DataFrame(data_new,index=idx_new,columns=col)#创建一个新的二维DataFrame对象,列索引col用已有的df=df.append(df_new)#追加到原有Dataframe对象的尾部print(df)#显示df运行结果如图11-17所示。(2)增加列创建新的Series对象并添加到原有

35、Dataframe对象中列的尾部,即可实现列的增加。【例11-34】在例11-33的df对象中添加1列新列。添加下面的代码:data=2.5,3.5idx=2020-06-02,2020-06-05df单价=pd.Series(data,index=idx)#创建新Series对象,作为新追加的列print(df)运行结果如图11-18所示。9.删除行、列(1)删除行通过向df.drop()中传入行索引值实现对行的删除,其语法格式为:df.drop(行索引)【例11-35】在例11-34中删除行索引值是“2020-06-05”的行。添加下面代码:df=df.drop(2020-06-05)pr

36、int(df)运行结果如图11-19所示。(2)删除列其语法格式如下:del df列索引值df.pop(列索引值)【例11-36】在例11-35中删除“单价”列,代码如下:del df单价#df.pop(单价)print(df)10.数据补全其语法格式为:df=df.fillna(补全的数据)df.fillna(补全的数据,inplace=True)上面两行代码的功能相同。例如对未知性别补全为“男”,df.fillna(男,inplace=True)。【例11-37】从字典创建DataFrame对象,因为有些数据项没有提供而造成空项,显示NaN。下面将这些NaN项补0.0。import pan

37、das as pddata=编号:11,名称:老冰棍,单价:2,销售数量:2,编号:12,名称:绿舌头,单价:3,销售数量:4,编号:13,名称:棒棒冰,单价:4,编号:15,名称:冰工厂,单价:5,编号:17,名称:脸雪糕,单价:6,销售数量:2#字典idx=2020-06-01,2020-06-02,2020-06-03,2020-06-04,2020-06-05#行索引名col=编号,名称,单价,销售数量#列索引名df=pd.DataFrame(data,index=idx,columns=col)#创建Dataframeprint(df)#显示Dataframe对象df=df.fill

38、na(0)#df.fillna(0,inplace=True)#就地补0,代码等价print(df)#显示补0后的Dataframe对象运行结果如图11-20所示。11.DataFrame的算术运算两个DataFrame对象可以进行相加、相减、相乘、相除运算,会对两个矩阵行索引(包括行索引名称和行索引值)和列索引相同的两个对应元素做运算。请参考Series的算术运算。11.2.4 Pandas的文件操作1.读取文件Pandas中常用的读取数据文件的方法见表11-6。下面介绍读取Excel文件的过程。Pandas处理Excel文件需要xlrd、openpyxl模块,所以需要提前安装这3个模块,安

39、装命令是:pip install pandaspip install xlrdpip install openpyxl用read_excel()方法读取xls和xlsx文件,读取Excel文件的语法格式如下:pd对象.read_excel(io,sheet_name=0,header=0,index_col=None,names=None)读取文件的过程大致分成两步:第一步是读取Excel文件,使用pd.read_excel()方法读取到的数据是一个DataFrame表格型数据,每一列都是一个Series对象。第二步是把读取到的数据进行切片分组等操作,获得需要处理的数据。【例11-38】读取E

40、xcel文件d:/data/score.xlsx,并显示读到的数据。score.xlsx中的数据如图11-24所示。import pandas as pddf=pd.read_excel(d:/data/score.xlsx,sheet_name=Sheet1)data=df.head(10)#获取前面10行,如果不为空的数据不到10行,自动获取所有全部非空数据print(data)print(df.head(10):)print(data)#显示读到的数据print(df姓名3:,df姓名4)#按列索引行下标取值print(df.iat4,1:,df.iat4,1)#按下标定位iat行下标,

41、列下标df.iat4,3=100#更改元素的值df学号=df学号.astype(str)#学号列的数据类型改为strdf总分=df总分.astype(int)#总分列的数据类型改为intdf.to_excel(d:/data/dfscore.xlsx,sheet_name=Sheet1)#把df写入到d:datadfscore.xlsxdata.to_excel(d:/data/datascore.xlsx,sheet_name=Sheet1)#把df写入到d:datadfscore.xlsx运行结果如图11-25所示。2.写入文件处理完成的DataFrame对象可以写入文件,Pandas提供

42、了数据写入文件和数据库的方法。Pandas中常用的写入文件的方法见表11-7。下面介绍写入Excel文件的过程。to_excel()方法的语法格式如下。df对象.to_excel(excel_writer,sheet_name=None,na_rep=,header=0,index=True)【例11-37】把例11-38中的DataFrame数据写入Excel文件。本实例中,要把df对象写入到Excel文件,将下面的语句添加到代码最后:df.to_excel(d:/data/dfscore.xlsx,sheet_name=Sheet1)#把df写入到d:/data/dfscore.xlsx如

43、果要把创建的data对象写入到d:/data/datescore.xlsx,则写入语句为:data.to_excel(d:/data/datascore.xlsx,sheet_name=Sheet1,index=False)#把data写入到文件运行程序后,用Excel打开d:/data/dfscore.xlsx和datascore.xlsx查看,如图11-26所示。11.2.5 计算统计Pandas提供了对Series和DataFrame进行统计的方法,见表11-8。【例11-40】Pandas对象的数值计算。import pandas as pddf=pd.read_excel(d:/data/score.xlsx,sheet_name=Sheet1)#遍历二维数组,把“缺考”的元素值改为0for i in range(len(df.index):for j in range(len(df.columns):if(df.iati,j=缺考):df.iati,j=0#把“缺考”的元素值改为0print(每列的最大值:)print(df.max()#计算每列的最大值print(计算均值:)print(df.mean()#计算每列的均值运行结果如图11-27所示。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|