📅  最后修改于: 2023-12-03 15:03:30.010000             🧑  作者: Mango
Pandas是Python编程语言中的一个数据分析库,提供了丰富的数据结构和数据分析工具。其中一个重要的功能是按照某一列或多列的值对数据进行排序。本文将介绍Pandas如何使用列表对数据进行排序。
Pandas提供了两个函数进行排序:
sort_values()
: 按照某一列或多列的值排序。sort_index()
: 按照行或列索引进行排序。这两个函数均支持升序和降序排序,通过参数 ascending
来指定,默认升序(True)。
在介绍排序函数之前,先创建一个示例数据集:
import pandas as pd
df = pd.DataFrame({'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [18, 23, 19, 20],
'城市': ['北京', '上海', '广州', '深圳'],
'成绩': [95, 87, 92, 89]})
运行上述代码可得到一个DataFrame对象,其中包含四列数据。
首先介绍按单列排序的操作。使用 sort_values()
函数对DataFrame对象的某一列进行排序,传入该列的名称或索引即可。例如,按照年龄列进行降序排序:
df.sort_values('年龄', ascending=False)
输出如下:
| 姓名 | 年龄 | 城市 | 成绩 | | --- | --- | --- | --- | | 李四 | 23 | 上海 | 87 | | 赵六 | 20 | 深圳 | 89 | | 王五 | 19 | 广州 | 92 | | 张三 | 18 | 北京 | 95 |
可以看到,按照年龄列进行了降序排序。
当需要按照多列进行排序时,只需传入一个包含多个列名的列表即可。例如,按照城市列进行升序排序,城市相同的再按照成绩列进行降序排序:
df.sort_values(['城市', '成绩'], ascending=[True, False])
输出如下:
| 姓名 | 年龄 | 城市 | 成绩 | | --- | --- | --- | --- | | 张三 | 18 | 北京 | 95 | | 李四 | 23 | 上海 | 87 | | 王五 | 19 | 广州 | 92 | | 赵六 | 20 | 深圳 | 89 |
可以看到,首先按照城市进行升序排序,当城市相同时再按照成绩进行降序排序。
除了按照列进行排序,还可以按照行或列的索引进行排序。使用 sort_index()
函数,传入 axis
参数指定按行排序(axis=0
)还是按列排序(axis=1
),使用 ascending
参数指定升序还是降序排序。
例如,按照索引从大到小排序:
df.sort_index(ascending=False)
输出如下:
| 姓名 | 年龄 | 城市 | 成绩 | | --- | --- | --- | --- | | 赵六 | 20 | 深圳 | 89 | | 王五 | 19 | 广州 | 92 | | 李四 | 23 | 上海 | 87 | | 张三 | 18 | 北京 | 95 |
可以看到,按照索引从大到小排序。
本文介绍了Pandas中的两个排序函数 sort_values()
和 sort_index()
。通过本文,您已经了解了如何使用这些函数对数据进行排序。在实际应用中,排序操作往往是数据预处理中的一步,非常常见和重要。