第3章 数据分析工具Pandas_1116ppt课件.pptx
《第3章 数据分析工具Pandas_1116ppt课件.pptx》由会员分享,可在线阅读,更多相关《第3章 数据分析工具Pandas_1116ppt课件.pptx(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在此输入您的封面副标题第3章 数据分析工具Pandas_1116 第3章 数据分析工具Pandas 数据结构分析 索引操作及高级索引 数据排序 统计计算与描述 层次化索引 读写数据操作 掌握掌握掌握掌握 学习目标掌握 数据结构分析,索引操作及高级索引12掌握 算术运算与数据对齐,数据排序掌握 统计计算与描述 ,层次化索引34掌握 读写数据操作 目录页01 Pandas的数据结构分析02 Pandas索引操作及高级索引03 算术运算与数据对齐04 数据排序05 统计计算与描述06 层次化索引 目录页07 读写数据操作 过渡页01 Pandas的数据结构分析02 Pandas索引操作及高级索引03
2、 算术运算与数据对齐04 数据排序05 统计计算与描述06 层次化索引 SeriesPandas中有两个主要的数据结构:Series和DataFrame。SeriesSeries一维的数据结构。DataFrameDataFrame二维的、表格型的数据结构。 SeriesSeries是一个类似一维数组的对象,它能够保存任何类型的数据,主要由一组数据和与之相关的索引两部分构成。 注意:Series的索引位于左边,数据位于右边。 SeriesPandas的Series类对象可以使用以下构造方法创建: data:表示传入的数据。 index:表示索引,唯一且与数据长度相等,默认会自动创建一个从0N的整
3、数索引。classpandas.Series(data=None,index=None,dtype=None,name=None,copy=False,fastpath=False) Series通过传入一个列表来创建一个Series类对象:#创建Series类对象ser_obj=pd.Series(1,2,3,4,5)#创建Series类对象,并指定索引ser_obj=pd.Series(1,2,3,4,5,index=a,b,c,d,e) Series除了使用列表构建Series类对象外,还可以使用dict进行构建。year_data=2001:17.8,2002:20.1,2003:16
4、.5ser_obj2=pd.Series(year_data) Series为了能方便地操作Series对象中的索引和数据,所以该对象提供了两个属性index和values分别进行获取。#获取ser_obj的索引ser_obj.index#获取ser_obj的数据ser_obj.values Series当然,我们也可以直接使用索引来获取数据。#获取位置索引3对应的数据ser_obj3 Series当某个索引对应的数据进行运算以后,其运算的结果会替换原数据,仍然与这个索引保持着对应的关系。ser_obj*2abc123abc246 DataFrameDataFrame是一个类似于二维数组或表格
5、(如excel)的对象,它每列的数据可以是不同的数据类型。 注意:DataFrame的索引不仅有行索引,还有列索引,数据可以有多列。 DataFramePandas的DataFrame类对象可以使用以下构造方法创建: index:表示行标签。若不设置该参数,则默认会自动创建一个从0N的整数索引。 columns:列标签。pandas.DataFrame(data=None,index=None,columns=None,dtype=None,copy=False) DataFrame通过传入数组来创建DataFrame类对象:#创建数组demo_arr=np.array(a,b,c,d,e,f
6、)#基于数组创建DataFrame对象df_obj=pd.DataFrame(demo_arr) DataFrame在创建DataFrame类对象时,如果为其指定了列索引,则DataFrame的列会按照指定索引的顺序进行排列。df_obj=pd.DataFrame(demo_arr,columns=No1,No2,No3) No1 No2 No30 a b c1 d e f DataFrame我们可以使用列索引的方式来获取一列数据,返回的结果是一个Series对象。#通过列索引的方式获取一列数据element=df_objNo2#查看返回结果的类型type(element) DataFrame
7、我们还可以使用访问属性的方式来获取一列数据,返回的结果是一个Series对象。#通过属性获取列数据element=df_obj.No2#查看返回结果的类型type(element) DataFrame在获取DataFrame的一列数据时,推荐使用列索引的方式完成,主要是因为在实际使用中,列索引的名称中很有可能带有一些特殊字符(如空格),这时使用“点字符”进行访问就显得不太合适了。 DataFrame要想为DataFrame增加一列数据,则可以通过给列索引或者列名称赋值的方式实现。#增加No4一列数据df_objNo4=g,h DataFrame要想删除某一列数据,则可以使用del语句实现。#删
8、除No3一列数据deldf_objNo3 过渡页01 Pandas的数据结构分析02 Pandas索引操作及高级索引03 算术运算与数据对齐04 数据排序05 统计计算与描述06 层次化索引 索引对象Pandas中的索引都是Index类对象,又称为索引对象,该对象是不可以进行修改的,以保障数据的安全。 索引对象Pandas还提供了很多Index的子类,常见的有如下几种:(1)Int64Index:针对整数的特殊Index对象。(2)MultiIndex:层次化索引,表示单个轴上的多层索引。(3)DatetimeIndex:存储纳秒寄时间戳。 重置索引Pandas中提供了一个重要的方法是rein
9、dex(),该方法的作用是对原索引和新索引进行匹配,也就是说,新索引含有原索引的数据,而原索引数据按照新索引排序。如果新索引中没有原索引数据,那么程序不仅不会报错,而且会添加新的索引,并将值填充为NaN或者使用fill_vlues()填充其他值。 重置索引reindex()方法的语法格式如下: index:用作索引的新序列。 method:插值填充方式。 fill_value:引入缺失值时使用的替代值。 limit:前向或者后向填充时的最大填充量。DataFrame.reindex(labels=None,index=None,columns=None,axis=None,method=Non
10、e,copy=True,level=None,fill_value=nan,limit=None,tolerance=None) 重置索引如果不想填充为NaN,则可以使用fill_value参数来指定缺失值。ser_obj.reindex(a,b,c,d,e,f,fill_value=6) 重置索引如果期望使用相邻的元素值进行填充,则可以使用method参数,该参数对应的值有多个。 索引操作Series有关索引的用法类似于NumPy数组的索引,只不过Series的索引值不只是整数。如果我们希望获取某个数据,既可以通过索引的位置来获取,也可以使用索引名称来获取。ser_obj=pd.Series
11、(1,2,3,4,5,index=a,b,c,d,e)ser_obj2#使用索引位置获取数据ser_objc#使用索引名称获取数据 索引操作如果使用的是位置索引进行切片,则切片结果是不包含结束位置;如果使用索引名称进行切片,则切片结果是包含结束位置的。ser_obj2:4#使用位置索引进行切片ser_objc:e#使用索引名称进行切片 索引操作如果希望获取的是不连续的数据,则可以通过不连续索引来实现。#通过不连续位置索引获取数据集ser_obj0,2,4#通过不连续索引名称获取数据集ser_obja,c,d 索引操作布尔型索引同样适用于Pandas,具体的用法跟数组的用法一样,将布尔型的数组索
12、引作为模板筛选数据,返回与模板中True位置对应的元素。#创建布尔型Series对象ser_bool=ser_obj2#获取结果为True的数据ser_objser_bool 索引操作DataFrame结构既包含行索引,也包含列索引。其中,行索引是通过index属性进行获取的,列索引是通过columns属性进行获取的。 索引操作虽然DataFrame操作索引能够满足基本数据查看请求,但是仍然不够灵活。为此,Pandas库中提供了操作索引的方法来访问数据,具体包括: loc:基于标签索引(索引名称),用于按标签选取数据。当执行切片操作时,既包含起始索引,也包含结束索引。 iloc:基于位置索引(
13、整数索引),用于按位置选取数据。当执行切片操作时,只包含起始索引,不包含结束索引。 过渡页01 Pandas的数据结构分析02 Pandas索引操作及高级索引03 算术运算与数据对齐04 数据排序05 统计计算与描述06 层次化索引 算术运算与数据对齐Pandas执行算术运算时,会先按照索引进行对齐,对齐以后再进行相应的运算,没有对齐的位置会用NaN进行补齐。 算术运算与数据对齐如果希望不使用NAN填充缺失数据,则可以在调用add方法时提供fill_value参数的值,fill_value将会使用对象中存在的数据进行补充。#执行加法运算,补充缺失值obj_one.add(obj_two,fil
14、l_value=0) 过渡页01 Pandas的数据结构分析02 Pandas索引操作及高级索引03 算术运算与数据对齐04 数据排序05 统计计算与描述06 层次化索引 按索引排序Pandas中按索引排序使用的是sort_index()方法,该方法可以用行索引或者列索引进行排序。 axis:轴索引,0表示index(按行),1表示columns(按列)。 level:若不为None,则对指定索引级别的值进行排序。 ascending:是否升序排列,默认为True表示升序。sort_index(axis=0,level=None,ascending=True,inplace=False,kin
15、d=quicksort,na_position=last,sort_remaining=True) 按索引排序按索引对Series进行分别排序,示例如下。ser_obj=pd.Series(range(10,15),index=5,3,1,3,2)#按索引进行升序排列ser_obj.sort_index()#按索引进行降序排列ser_obj.sort_index(ascending=False) 按索引排序按索引对DataFrame进行分别排序,示例如下。df_obj=pd.DataFrame(np.arange(9).reshape(3,3),index=4,3,5)#按行索引升序排列df_
16、obj.sort_index()#按行索引降序排列df_obj.sort_index(ascending=False) 按值排序Pandas中用来按值排序的方法为sort_values(),该方法的语法格式如下。by参数表示排序的列,na_position参数只有两个值:first和last,若设为first,则会将NaN值放在开头;若设为False,则会将NaN值放在最后。sort_values(by,axis=0,ascending=True,inplace=False,kind=quicksort,na_position=last) 按值排序按值的大小对Series进行排序的示例如下:s
17、er_obj=pd.Series(4,np.nan,6,np.nan,-3,2)#按值升序排列ser_obj.sort_values() 按值排序在DataFrame中,sort_values()方法可以根据一个或多个列中的值进行排序,但是需要在排序时,将一个或多个列的索引传递给by参数才行。df_obj=pd.DataFrame(0.4,-0.1,-0.3,0.0,0.2,0.6,-0.1,-0.7,0.8,0.6,-0.5,0.1)#对列索引值为2的数据进行排序df_obj.sort_values(by=2) 过渡页01 Pandas的数据结构分析02 Pandas索引操作及高级索引03
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 数据分析工具Pandas_1116ppt课件 数据 分析 工具 Pandas_1116ppt 课件
限制150内