Python数据分析与可视化 教案 电子 第4章 利用pandas进行数据分析.docx
课题4.1数据的排序与排名课型讲练授课班级大数据授课时数2教学目标1 .能够对数据按照指定列排序。2 .能够对数据按照指定列排名。3 .理解排名函数rank中排名方法参数Inethod的用法。教学重点1能够对数据按照指定列排序。2.能够对数据按照指定列排名。教学难点1.理解排名函数rank中排名方法参数method的用法。对数据进行排序是数据分析的一种常用的方法,而且这种方法也常常和学情分析其他方法一起使用,比如在统计频数后,可以再按照方式进行排序。排序和排名在EXCe1中已经学过了,方法也类似。在数据分析时,对数据进行排序和排名是常用的一种操作。通过数据的排序和排名,比较容易发现数据的特征或趋势,找到解决问题的线索。除此之外,排序和排名还有助于对数据检查纠错,为数据的分组或分段等提供方便。一、数据排序数据排序是指数据按一定方式进行排列,通过数据排序可以更为方便地看出数据特征。DaIaFrame排序可以分为按索引排序和按某列值排序,索引排序是指按照DataFrame索引的值升序或降序的方式重新排列数据,而按列值排序是指可以按照DataFrame某一列的值升序或降序的方式重新排列数据。利用SortJndex函数可对索引进行排序,而利用sort-va1ues函数可对值进行排序。1 .按索引排序按索引排序是指DataFrame按照索引进行排序,索引排序可以使用sort-index函数,SorUndex函数的一般用法如下:sort_index(ascending,inp1ace)其中,ascending表示排序方式,True为升序排列,Fa1se为降序排列,默认是True,即默认是升序排序。示例代码如下:importnumpyasnpimportpandasaspdarr=np.arange(1,10).reshape(353)data=pd.DataFrame(arr,co1umns='a','b','c,)data,d,=3,4,2data=data.setjndex('d')Print("初始数据为据”,data)data_sort_index_1=data.sort_index(inp1ace=Fa1se)Print("按索引升序排序的结果为:n",data_sOrundex_1)data_sort_index_2=data.sort_index(ascending=Fa1se,inp1ace=Fa1se)Print("按索引降序排序的结果为:n",data_sort_index_2)输出结果如图4-*所示。Run:4-1>C:Users1i1iangAnaconda3python.exeC:/U5ers/1i1iang/PycharmProject$/sjfx/4-1.py初始数据为:abc2:d3123»_4456W2 789披索引升序排序的统果为:2 7893 1234 456按索引降后排序的结果为:Processfinishedwithexitcode图4-*按索引排序示例结果2.按列值排序按列值排序是DataFrame按照某一列的值进行排序,值排序序可以使用sort_va1ues函数,sort_va1ues函数的一般用法为:sort_va1ues(by,ascendingJnp1ace)其中,by表示表示按照某一列或凡列得值进行排序。ascending表示排序方式,TnIe为升序排列,FaISe为降序排列,默认是TrUe,即默认是升序排序。示例代码如下:data=data.reset_index()#取消用户自定义索引,恢复成自动索引data,e,=2,3,2data=data,a,b',c7d,e-#重新排列原来的列Print("初始数据为:n”,data)data_sort=data.sort-va1ues(by='e',d',ascending=Fa1se,Fa1se)Print("按e、d两列降序排序的结果为:n",data_sort)输出结果如图4-*所示。Run:4-1AC:UsersIi1iangAnaconda3python.e×eC:Usors1i1iang/PycharmProje<t$/sjf×41.py初始数据为:abcde-j5012332U145643278922;按ad两列降序排乎的结.为:®abode14564:91233227892;Processfinishedwithexitcode图4-*按列排序示例结果【结果分析】按e、d两列降序排序时,即先按e列降序排序,再按d列降序排序。只有当e列的值相同时(都为2),才会再按d列的值排序。二、数据排名在实际工作中,经常需要对数据进行排名,比如对客户的销售金额进行排名,查看重点客户名单。排名函数在很多数据分析软件都有,如EXCeI中的rank函数。而在PandaS中,也有类似的rank函数,该函数可以对Da1aFrame按照某列进行排名,其一般用法如下:rank(method,ascending)其中,method表示重复数值排名的处理方法。average表示整个相同排名组中平均排名。min表示整个相同排名组中的最小排名。max表示整个相同排名组中的最大排名。ascending表示排名顺序,True表示升序排列,Fa1se表示降序排列,默认是TrUeo如一组数据6、5、5、2,在降序的情况下,数值6排名第1,数值2排名第4,重复的数值5占据排名第2和第3。如果按照平均排名,两个数值5都是排名2.5;如果按照最小排名,两个数值5都是排名2;如果按照最大排名,两个数值5都是排名3。在利用rank函数对数据进行排名时,还有一点需要注意,就是在对某一列进行排名,需要对该列进行去空处理,否则会报错。示例代码如下:Print("初始数据为据”,data)data'e_rank_avg'=data'e,.rank(method='averageascending=Fa1se)Prim("降序排名时按平均排名的结果:r,data)data.drop(1abe1s='e_rank_avg',axis=1Jnp1ace=True)datae-rank-min'=dau,e,rank(method-min',ascending=Fa1se)Print("降序排名时按最小排名的结果:n",data)data.drop(1abe1s-e_rank_minaxis=IJnp1ace=True)data,e-rank-max'=data'e'.rank(method='max',ascending=Fa1se)Print("降序排名时按最大排名的结果:ndata)输出结果如图4-*所示。RUfr41AC:Users1i1iangAM0da3python.exe(:/U$«r$/1i1iang/PychareProje<t$/sjfx/4-1.py初始被IR为:Abcde012332£1145643*.278922行那序排名时技平均排心的峪案:abcdee-rak-avg0125322.51456431.02789222.5降序1»名酎按小1»者的蠕累;abcdee-rankin0123)22.01456431.02789222.修序排名时按大排名的修里:abcde_rank_aax0123323.1456431.02789223.0ProcessfiniUedwithexitcode图4-*数据排名示例结果任务实训任务1:利用read_exce1导入supermarket.x1sx(supermarket.x1sx存放在c:data路径中)中的“销售统计”工作表(第1张工作表),导入时将“客户ID”列设为索引,将导入数据命名为data1,完成:(1)按索引升序排序,输出前5个数据。(2)按列进行排序,先按“折扣”列降序排序,再按照“折扣金额”升序排序,输出前5个数据。任务1(1)具体代码如下:pd.set_option('disp1ay.max_co1umns',None)pd.set_option('disp1ay.width',None)pd.set-option('disp1ay.unicode.east-asian-width,True)data1=pd.read-exce1("cdatasupermarket.x1sx",index-co1=,)i1ID,)Print("导入的数据为:n",data1.head。)resu1t_sort_1=data1.sort-index().head()Print("按索引升序排序的结果为:nresu1t_sort)输出结果如图4-*所示。Run:4-1C:User1i1iangAf13conda3ython.exeC:Uers1i1iagPychdrProjectsjf×4-1.py导入第Bt髭力:订单ID产品IO产8名称七户姓名城市单价用佞金除折扣折扣金柒SJ5MK)i1448SUS-2018-13S7144办公用用品IoM2717Fiskars91J),西色BVU1杭州6521300.478.才10165CN-2018-1973789办公用任忖-W04S32G1obeHe1sISKHt,红色许安M1内江632126e.e126.e18165CN<20181973789办公用修订1W15O5Cardina1扎加固材料,回收许安nj内江162320.419.2B17170US2018)017568办公用.用品.IOee"46K1««ncut开(8刀,X1ft宋盛江芳俊江SO43280.4192.1S73CN-2017297S416分公用不舁10MS2KitchenAid搅拌机,工色万”广柒汕头4S931177e.e1377.0按索弗升序JI序的综聚力:U单10产品ID产8名称百户姓名营城市单价数箱集金1折扣折扣金*杳户IQ116SCN-2018-197)789办公用仁封IOee4S32G1obcWois播KMS封,红色许安BJII内江632126e.e126.10165CN20181973789办公用*口100015。5Cardina1孔加用材料,回收WS四川内R16232e.419.214485US>20181357144办公用用8ie02717FiskarsU刀,若色we满江杭州652130