![Python+Office:轻松实现Python办公自动化](https://wfqqreader-1252317822.image.myqcloud.com/cover/834/40107834/b_40107834.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.5 数据的排序
排序的目的是将一组“无序”的数据序列调整为“有序”的数据序列,本节将会介绍如何按索引排序和按数值排序等,使用的数据文件为“2020年第二学期学生考试成绩.xls”。
3.5.1 按行索引对数据进行排序
在介绍如何使用Pandas库排序数据之前,还是创建一个关于4名学生学习成绩的数据集,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_63.jpg?sign=1739236295-RCSc5gzMLpUQ8UNtTCKdnCc9iqIg7Hl1-0-e400cb39ed644a306072b4481367c0d9)
运行上述代码,创建的数据集如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_64.jpg?sign=1739236295-0Dcrm3TloJr3wfJG3j9toq2V6IXeuaL4-0-5705efbd8456bc018e4e6217a9967fcb)
使用sort_index()函数对数据集按行索引进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_65.jpg?sign=1739236295-4ZE4FzhMjBNgoQO4AlK2upM7jOLuewOE-0-39a6dd3e9105787067efb0633bebb511)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_66.jpg?sign=1739236295-IH2Zsmjco1hrPVeKyLoHrsbYaGSr4xtN-0-8fad93aadf82c58afb7559a91530005f)
3.5.2 按列索引对数据进行排序
可以通过设置axis=1实现按列索引对数据集进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_67.jpg?sign=1739236295-FFiDrgblyr7mbGupDAilpdioJKslqgJY-0-e88b35dfdeb56a4a22ba20df8c6b431c)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_68.jpg?sign=1739236295-dfE4X9spStAhmyx35F4FCwUWiuTpIAU8-0-ee5966f4ce2fb7362b66fe966b12f24c)
默认是按升序排列的,但也可以按降序排列。参数ascending的默认值为True,即按升序排列;如果将参数ascending的值设置为False就按降序排列,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_69.jpg?sign=1739236295-lo5T6DgyIViymsykQ6RDXP0cWASKS2Et-0-18ca05a2f995cc7dfdda114a33d96a7d)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_70.jpg?sign=1739236295-1lPl5HSbfC0xjBTef84Sm6k2o1XdrMj7-0-33e2686e42423754364242c8d38c7c9d)
3.5.3 按一列或多列对数据进行排序
使用sort_values()函数,并设置by参数,可以根据某一个列中的值进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_71.jpg?sign=1739236295-wAg5lTDEGYaYsINEndUp0C8foR3Xm1yY-0-5323d71db7005759cd0b5516c68bf704)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_72.jpg?sign=1739236295-L89tSeiIdLw8JUWngfTwOAynATVIwoIq-0-13c2e60eb6f5346c16789abd83333db4)
如果要根据多个数据列中的值进行排序,则by参数需要传入名称列表,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_73.jpg?sign=1739236295-3vVEV7e3cGix92vWUpDQxYtly9E5v6kc-0-a43f67414083ab59c12ed81781ca0b6a)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_74.jpg?sign=1739236295-G9E6AZRI5BfhdpvF8FbKLWSJmro3iXo3-0-1aa261d66383139bac98b6c2d413d2fd)
3.5.4 按一行或多行对数据进行排序
对于行数据的排序,可以先转置数据集,再按照上述列数据的排序方法进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_75.jpg?sign=1739236295-3v7dDJJVyC1JF78BDeq1IDQYm5ZKk5qr-0-8190686473be75dd785082a691bdcd65)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_76.jpg?sign=1739236295-42s5SOHyabdm75KoOnGZapIEbl7hmsVP-0-de1ca444736b3b7b0d6c40881cf50d6f)