(高职)12.2 pandas模块ppt课件.pptx

上传人:春哥&#****71; 文档编号:14913985 上传时间:2022-05-09 格式:PPTX 页数:15 大小:160.50KB
返回 下载 相关 举报
(高职)12.2 pandas模块ppt课件.pptx_第1页
第1页 / 共15页
(高职)12.2 pandas模块ppt课件.pptx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《(高职)12.2 pandas模块ppt课件.pptx》由会员分享,可在线阅读,更多相关《(高职)12.2 pandas模块ppt课件.pptx(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、12.2 pandas模块Python Python 程序设计程序设计丁辉丁辉 商俊燕商俊燕 范晓玲范晓玲第十二章第十二章 数据处理数据处理u12.1 numpy模块模块u12.2 pandas模块模块u12.3 matplotlib模块模块u12.4 大数据处理精选案例大数据处理精选案例u小结小结2022年5月8日32022年5月8日4pandas 是基于numpy构建的含有更高级数据结构和工具的数据分析包,是一个专门用于数据分析的开源Python库。目前,所有使用Python语言研究和分析数据集的专业人士,在做统计分析和决策时,pandas都是他们的基础工具。它能够以最简单的方式提供数据处

2、理、数据抽取和数据操作所需的全部工具。 l pandas引入 from pandas import Series,DataFrame import pandas as pdlSeries对象 Series对象类似numpy数组的数据结构,同时每个元素带有标签(lable)或者说索引(index)。支持float、int、bool、datatime、timedelta、category、object类型。创建Series对象可以使用Series()构造函数来声明,把要存放在Series对象中的数据以数组形式传入。 import pandas as pd from pandas import Se

3、ries,DataFrame sn = Series(1,2,3,as) print (sn)0 11 22 33Asdtype: object sn = Series(1,2,3,as,index=a,b,c,d) #增加索引参数 print (sn)a 1b 2c 3d asdtype: object print(sn.index)Index(a, b, c, d, dtype=object) print(sn.values)1,2,3, as12.2 pandas模块选择Series内部元素 sn = Series(1,2,3,4,index=a,b,c,d) print(sn2,snc

4、) print(sn0:2)3 3a 1b 2dtype: int64 2022年5月8日5lDataFrame对象 DataFrame对象是一种二维的表结构,类似Excel中的工作表。pandas的DataFrame可以存储许多种不同的数据类型,并且每一个坐标轴都有自己的标签。DataFrame由按一定顺序排列的多列数据组成,各列的数据类型可以不同。创建DataFrame对象 import pandas as pd from pandas import Series,DataFrame data = id: 2000, 2001, 2002,name: lily, apple, micky,

5、age: 15, 17,19 #从字典创建 frame1 = DataFrame(data) print(frame1) i d name age0 2000 lily 151 2001 apple 172 2002 micky 19 选取元素使用DataFram对象中的columns属性,可以获取DataFram中所有列。 fc = frame1.columns print(fc)Index(id, name, age, dtype=object)DataFram对象中的index属性获取索引列表,values属性获取所有元素。 print(frame1.index)RangeIndex(s

6、tart=0, stop=3, step=1) print(frame1.values)2000 lily 15 2001 apple 17 2002 micky 1912.2 pandas模块2022年5月8日6l DataFrame对象使用ix属性能获取DataFram对象中的行。 fr = frame1.ix0 fr1 = frame1.ix1 fr2 = frame1.ix0.:1 print(fr)id 2000name lilyage 15Name: 0, dtype: object print(fr1)id 2001name appleage 17Name: 1, dtype:

7、object print(fr2)id name age0 2000 lily 151 2001 apple 17函数应用 frame2 = pd.DataFrame(np.arange(6).reshape(2,3),columns=id,name,age) fs = np.sqrt(frame2) fm = np.max(frame2) fmean = np.mean(frame2) print(frame2) id name age0 0 1 21 3 4 5 print(fs) id name age0 0.000000 1.0 1.4142141 1.732051 2.0 2.236

8、068 print(fm)id 3name 4age 5dtype: int32print(fmean) id 1.5name 2.5age 3.5dtype: float6412.2 pandas模块2022年5月8日7l DataFrame对象NaN数据处理 from pandas import Series,DataFrame import numpy as np import pandas as pd ser = pd.Series(0,1,np.NaN,3,index=red,blue,white,green) print(ser)red 0.0blue 1.0white NaNgr

9、een 3.0dtype: float64 ser.dropna() #过滤掉缺失值red 0.0blue 1.0green 3.0dtype: float64 frame1 = pd.DataFrame(1,np.NaN,np.NaN,2,np.NaN,np.NaN,columns=id,name,age) f = frame1.dropna() #只要有NaN,则整列或整行被删除 print(f) Empty DataFrameColumns: id, name, ageIndex: 12.2 pandas模块2022年5月8日8lDataFrame对象 print (frame1.dro

10、pna(how=all) #只会删除全列或行都为NaN的列或行 id name age0 1 NaN NaN1 2 NaN NaN print(frame1.fillna(5) #用一个值替换NaN id name age0 1 5.0 5.01 2 5.0 5.0 print(frame1.fillna(name:zhanglin,age:25) id name age0 1 zhanglin 25.01 2 zhanglin 25.012.2 pandas模块2022年5月8日9l 数据集成 在Python中,panda.merge()函数可根据一个或多个键将不同DataFrame中的行连

11、接起来;pandas.concat()函数可以沿着一条轴将多个对象堆叠到一起。使用merge()函数进行合并merge()函数的格式为:merge(left, right, how=inner, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=(_x, _y), copy=True, indicator=False) left与与right:两个不同的DataFrame。how:指的是合并(连接)的方式有inner(内连接),left(左外连接),rig

12、ht(右外连接),outer(全外连接),默认为inner。on : 指的是用于连接的列索引名称。必须存在左右两个DataFrame对象中,如果没有指定且其它参数也未指定则以两个DataFrame的重叠列名做为连接键。left_on:左则DataFrame中用作连接键的列名。当两个DataFrame对象中没有相同列名,但有含义相同的列时,就可以使用这个参数。right_on:与left_on配合使用,右则DataFrame中用作连接键的列名。left_index:使用左则DataFrame中的行索引作为连接键。right_index:使用右则DataFrame中的行索引作为连接键。sort:默

13、认为True,将合并的数据进行排序。在大多数情况下设置为False可以提高性能suffixes:字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为(_x,_y)。copy:默认为True,总是将数据复制到数据结构中;大多数情况下设置为False可以提高性能。 12.2 pandas模块2022年5月8日10l 数据集成frame1 = pd.DataFrame(id:101,102,103,name:lily,mike,jerry)frame2 = pd.DataFrame(id:101,102,104,score:84,93,76) #对两个D

14、ataFrame对象应用merge()函数,执行合并操作 print(pd.merge(frame1,frame2) #默认按id进行合并 id name score0 101 lily 841102 mike 93 frame1 = pd.DataFrame(id:101,102,103,name:lily,mike,jerry) frame2 = pd.DataFrame(sid:101,102,104,score:84,93,76) print(fml=pd.merge(frame1,frame2, left_on=id,right_on=sid)#设置left_on=id、 right

15、_on=sid,将frame1对象中的id和frame2对象中的sid作为连接键 id name sid score0 101 lily 101 841102 mike 102 93 frame1 = pd.DataFrame(id:101,102,103,name:lily,mike,jerry) frame2 = pd.DataFrame(id:101,102,104,score:84,93,76) fml = pd.merge(frame1,frame2, how=left,) #不同的合并方式 fmr = pd.merge(frame1,frame2, how=right) fmo =

16、 pd.merge(frame1,frame2, how=outer) fmi = pd.merge(frame1,frame2, how=inner) print(fml) id name score0 101 lily 84.01 102 mike 93.02 103 jerry NaN12.2 pandas模块2022年5月8日11l 数据集成 print(fmr) id name score0 101 lily 841 102 mike 932 104 NaN 76 print(fmo) id name score0 101 lily 84.01 102 mike 93.02 103

17、jerry NaN3 104 NaN 76.0 print(fmi) id name score0 101 lily 841 102 mike 9312.2 pandas模块2022年5月8日12l 数据集成使用concat()函数进行拼接concat()函数的格式为:concat(objs, axis=0, join=outer, join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True) objs:参与连接的列表或字典,且列表或字典里的对

18、象是pandas数据类型,唯一必须给定的参数。axis:指明连接的轴向,0是纵轴,1是横轴,默认是0。join:“inner”(交集),“outer”(并集),默认是“outer”。 frame1 = pd.DataFrame(id:101,102,103,105,name:lily,mike,jerry,tom) frame2 = pd.DataFrame(id:101,102,104,name:lily,mike,peppg) print(pd.concat(frame1,frame2,axis=0) #axis=0,纵轴连接 id name0 101 lily1 102 mike2 10

19、3 jerry3 105 tom0 101 lily1 102 mike2 104 peppg print(pd.concat(frame1,frame2,axis=1) #横轴连接 id name id name0 101 lily 101 lily1 102 mike 102 mike2 103 jerry 104 peppg3 105 tom NaN NaN12.2 pandas模块2022年5月8日13l 数据集成 frame1 = pd.DataFrame(id:101,102,103,105,name:lily,mike,jerry,tom) frame2 = pd.DataFra

20、me(id:101,102,104,name:lily,mike,peppg) fco = pd.concat(frame1,frame2,axis=1,join=outer) #并集 fc = pd.concat(frame1,frame2,axis=1,join=inner) #交集 print(fco) id name id name0 101 lily 101 lily1 102 mike 102 mike2 103 jerry 104 peppg3 105 tom NaN NaN print(fc) id name id name0 101 lily 101 lily1 102 mi

21、ke 102 mike2 103 jerry 104 peppg12.2 pandas模块2022年5月8日14【例12-1】dianying.csv中包含多个城市中多部电影的票房信息,要求任选dianying.csv中某部电影统计其上映天数和日平均票房。分析:dianyig.csv文件中包含有电影名称、上映时间、下线时间、公司、导演、主演、类型、票房、城市信息。首先筛选出该电影的电影名称、电影上映时间、下线时间、票房信息等列;接着对筛选出的信息进行去重、去空等清洗处理;再将新数据进行格式转换;最后统计电影的上映天数和日平均票房。#eg12_1.py#导入pandas库import panda

22、s as pd #读入csv中的数据,以“;”作为分割添加字段名df = pd.read_csv(dianying.csv,delimiter=;,encoding=utf-8,names=电影名称,上线时间,下线时间,公司,导演,主演,类型,票房,城市) #筛选影片冲上云霄数据dyxx = dfdf电影名称=冲上云霄.loc:,电影名称,上线时间,下线时间,票房,城市 #去重处理dyxx = dyxx.drop_duplicates().reset_index().drop(index,axis=1) #去除票房列多余的字符票房(万),且转为float类型 dyxx票房 = dyxx票房.str.split()).str1.astype(float) #将时间列转换datetime时间类型dyxx上线时间 = pd.to_datetime(dyxx上线时间)dyxx下线时间 = pd.to_datetime(dyxx下线时间)#计算上映总天数day = (dyxx下线时间.max()-dyxx上线时间.min().days+1 #计算总票房box = dyxx票房.sum() #计算平均票房 avg_box = box/day #输出计算结果print(dyxx电影名称0,电影上映:,day,天,;日平均票房:,avg_box) 12.2 pandas模块2022年5月8日15

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com