![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=1738856853-yk2HBSnoQBDP2WRgZRBjFU11F2LfHCsJ-0-a2f2922ef206e1eb10e21198305e8618)
运行上述代码,创建的数据集如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_64.jpg?sign=1738856853-gRjrHTRUWg4jxTZOJXzceFwkekL2id0V-0-f3ad043a8b35809c08ccadf6c8f2d5e6)
使用sort_index()函数对数据集按行索引进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_65.jpg?sign=1738856853-8oL6a2R2pWqLcQXJcQPfcjg0JvgOUb8a-0-142c4933a7cf3f301712dff9b6245829)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_66.jpg?sign=1738856853-WztLlKoBHcn7YdqWXljt7ORMblB2eWFC-0-3df5536c7e6abba71517a89c7e33590f)
3.5.2 按列索引对数据进行排序
可以通过设置axis=1实现按列索引对数据集进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_67.jpg?sign=1738856853-zM3XK8L8bZvOUEX5Sp8P281aDLVIUey6-0-6e3e2e6b6284d197e85f43dd83e40b14)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_68.jpg?sign=1738856853-fcHKqFcVZWYDpQk3PP0owUZe8T7NElyJ-0-822785e96808c0a241e14b0f62266246)
默认是按升序排列的,但也可以按降序排列。参数ascending的默认值为True,即按升序排列;如果将参数ascending的值设置为False就按降序排列,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_69.jpg?sign=1738856853-dfnX6DEiFp9U3YyRyAPpkCJDqxnTEZP0-0-075c0bd1f5b9d80fa6bbcba466a82156)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_70.jpg?sign=1738856853-gnKsde6iCUrZ9lJxXhclGuwN52XaQNCC-0-65cdfe80df10f33972159c0ed3543002)
3.5.3 按一列或多列对数据进行排序
使用sort_values()函数,并设置by参数,可以根据某一个列中的值进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_71.jpg?sign=1738856853-0vTq5Q4iRHeyNSIw3mzGP0d4iCHK3cZc-0-8fd9d8909ae690cb32c73290e1f35505)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_72.jpg?sign=1738856853-wTfCv5aTd1P2QtVEiymzjGyQGZhy79z3-0-0971bafe1b97884c2dd7fd2b3b38a5cc)
如果要根据多个数据列中的值进行排序,则by参数需要传入名称列表,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_73.jpg?sign=1738856853-58V6PRV9I62TlAyUfL8eNMgHDyzyLwWk-0-b6e5b53d6bfb7530c2861effabb22232)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_74.jpg?sign=1738856853-5UVZoCJZ6TXwyxJDtKpZUyVLMwXQAh8f-0-84d9da333bcc83c327ab6e2bacd5ee1c)
3.5.4 按一行或多行对数据进行排序
对于行数据的排序,可以先转置数据集,再按照上述列数据的排序方法进行排序,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_75.jpg?sign=1738856853-W5uKcSwZKQX9XkYKfKs4nVtBf7QTAyHw-0-e326dd2483d3ddacf9f5079c77634d24)
代码输出结果如下所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_76.jpg?sign=1738856853-kwTast94IEfqGJHpZYRnSDVAvlyqCAFU-0-d07a875ed02ec26488fe9bddb8e79a3c)