pandas数值排序的实现实例

陆景行
陆景行
发布时间:2026-10-14| 6人浏览过
原创

本文详细介绍pandas中sort_values()方法的使用,涵盖单列与多列数值排序、升序与降序设置,以及缺失值(NaN)位置的灵活控制。通过具体代码示例和结果展示,帮助开发者掌握数据清洗与排序的核心技巧。

本文所使用的示例表格数据如下:

在开始排序操作前,我们先查看原始数据的状态:


import pandas as pd
​
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df)

result: 姓名 年龄 成绩 0 小明 23.0 78 1 小刚 NaN 89 2 小红 876.0 65 3 李华 65.0 89 4 小美 NaN 43 5 张三 34.0 90 6 李四 NaN 34 7 王五 98.5 87

1.按照一列数值进行排序

对单列数值进行排序时,整个数据表将依据指定列的值进行升序或降序排列。实现这一功能需调用sort_values()方法,并通过by参数指定目标列名,同时利用ascending参数设定排序方向(升序或降序)。

1.1按照五缺失值的一列进行排序

1.1.1升序排列

该方法默认执行升序排列(即ascending参数默认为True),只需通过by参数指定需要排序的列名即可。


df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df.sort_values(by=["成绩"]))

result: 姓名 年龄 成绩 6 李四 NaN 34 4 小美 NaN 43 2 小红 876.0 65 0 小明 23.0 78 7 王五 98.5 87 1 小刚 NaN 89 3 李华 65.0 89 5 张三 34.0 90

1.1.2 降序排列

只需将ascending参数的值设置为False,即可实现降序排列。


df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df.sort_values(by=["成绩"], ascending=False))

result: 姓名 年龄 成绩 5 张三 34.0 90 1 小刚 NaN 89 3 李华 65.0 89 7 王五 98.5 87 0 小明 23.0 78 2 小红 876.0 65 4 小美 NaN 43 6 李四 NaN 34

1.2按照有缺失值的一列进行排序

当待排序的列中包含缺失值时,可以通过设置na_position参数来指定缺失值在排序结果中的显示位置。

1.2.1 缺失值显示在最后

该方法默认将缺失值显示在末尾(即na_position参数的默认值为last)。


df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df.sort_values(by=["成绩"]))

df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df.sort_values(by=["年龄"]))

result: 姓名 年龄 成绩 0 小明 23.0 78 5 张三 34.0 90 3 李华 65.0 89 7 王五 98.5 87 2 小红 876.0 65 1 小刚 NaN 89 4 小美 NaN 43 6 李四 NaN 34

1.2.2 缺失值显示在最前面

只需将na_position参数的值设置为first,即可使缺失值显示在排序结果的最前面。


df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df.sort_values(by=["年龄"], na_position='first'))

result: 姓名 年龄 成绩 1 小刚 NaN 89 4 小美 NaN 43 6 李四 NaN 34 0 小明 23.0 78 5 张三 34.0 90 3 李华 65.0 89 7 王五 98.5 87 2 小红 876.0 65

2.按照多列数值进行排序

多列数值排序是指同时依据多个列的数据进行升序或降序排列。当第一列出现重复值时,系统会自动依据第二列进行排序;若第二列仍有重复,则继续依据第三列排序,以此类推。此时,在sort_values()方法中,需将多个列名以列表形式传递给by参数,并将每个列名对应的排序方式也以列表形式传递给ascending参数,确保两个列表中的元素一一对应。


df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df.sort_values(by=["成绩", "年龄"], ascending=[True, False]))

result: 姓名 年龄 成绩 6 李四 NaN 34 4 小美 NaN 43 2 小红 876.0 65 0 小明 23.0 78 7 王五 98.5 87 3 李华 65.0 89 1 小刚 NaN 89 5 张三 34.0 90

上述示例中,首先按照成绩进行升序排列,当成绩相同时,再按照年龄进行降序排列。

到此这篇关于pandas数值排序的实现实例的文章就介绍到这了,更多相关pandas数值排序内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。