![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=1739330529-VlNtfDuUVNCTryGLs3y25vStKuanPaGV-0-082eab13e4a8a15b8c8918047d6689b9)
运行上述代码,创建的数据集如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_64.jpg?sign=1739330529-q5kpDWTot7XDMNNf82wvyDaypoGsfjgD-0-876f2574179e9490f64cc2268dca6eac)
使用sort_index()函数对数据集按行索引进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_65.jpg?sign=1739330529-DZ3BkHojEMk9NW9vw4k50hCqUtAsYEdB-0-89bf45a65f72e467b9d10e09b3308c35)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_66.jpg?sign=1739330529-NnKWZ4AvzOYkFijgAgJUS7mwSrm2nwUy-0-381fddfdbef52b5cb456bdb427a3e022)
3.5.2 按列索引对数据进行排序
可以通过设置axis=1实现按列索引对数据集进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_67.jpg?sign=1739330529-ZmxRf31Ya8tIX0QdTh3BNI7cvMo1o3Zw-0-9e2ef27105c57e1bfaf34f1ef945dd2a)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_68.jpg?sign=1739330529-15PLGTscp0QkHqd8QzXJ6V2QyzC2ViXf-0-2cd2d32f2f50ee4ab07e2d135fb46522)
默认是按升序排列的,但也可以按降序排列。参数ascending的默认值为True,即按升序排列;如果将参数ascending的值设置为False就按降序排列,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_69.jpg?sign=1739330529-2kOR0MnAFk6C3vbZtTb2JCrIxecKfGia-0-26661bc643ff380a0118172d6d8057b2)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_70.jpg?sign=1739330529-2d7K9OL7orctCpsIfUC7cWZBGVvSKK8m-0-143cf488c4438042462033ca98fff80b)
3.5.3 按一列或多列对数据进行排序
使用sort_values()函数,并设置by参数,可以根据某一个列中的值进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_71.jpg?sign=1739330529-9gKvZzKX07cyGYzWfaiFK6KkRi3un6lQ-0-517db2dec266ef921a4d030b9b01a2e9)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_72.jpg?sign=1739330529-WVZ0EwfQGXG533nZbdO0ZkJHu3UF2Ktq-0-cd918d8fc3c279e32fc3413c343a98b1)
如果要根据多个数据列中的值进行排序,则by参数需要传入名称列表,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_73.jpg?sign=1739330529-kNOL3Bbx2A6AyeXG4hekwXS1xWQ4dn1c-0-41c8d4c2399caa7eb296fd2b89352770)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_74.jpg?sign=1739330529-fNhV9tigksXWH9V876WjJ1KdyiAHeEsU-0-7a1d8d1b7bb4db2891720e338eb38651)
3.5.4 按一行或多行对数据进行排序
对于行数据的排序,可以先转置数据集,再按照上述列数据的排序方法进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_75.jpg?sign=1739330529-T3myL3Im2enjQJqlKlP7xpril0BCMPCR-0-9ce037280056c0da50cd72caac65c3d8)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_76.jpg?sign=1739330529-xdSDR9FmK4HvxMGqfnlJNdVG4JhF46mh-0-cee68b9b54fa901cbd4b6b03a6493369)