Pandas DataFrame索引排序与重排详解:sort_index与reindex用法

雨后青山
雨后青山
发布时间:2026-10-15| 4人浏览过
原创

本文详细介绍Pandas中df.sort_index()函数的使用方法,包括默认的升序排列及通过ascending=False实现降序排序。同时讲解df.reindex()如何自定义行和列的索引顺序,涵盖axis参数及具体代码示例,帮助开发者高效管理DataFrame数据顺序。

使用sort_index进行索引排序

在Pandas中,可以使用df.sort_index()方法对DataFrame的索引进行排序。该函数默认按照索引值从小到大的顺序进行升序排列。如果用户希望按照从大到小的顺序进行降序排列,可以在调用该函数时传入参数ascending=False。

import pandas as pd
 
df = pd.DataFrame([['liver','E',89,21,24,64],
                   ['Arry','C',36,37,37,57],
                   ['Ack','A',57,60,18,84],
                   ['Eorge','C',93,96,71,78],
                   ['Oah','D',65,49,61,86]
                  ], 
                   columns = ['name','team','Q1','Q2','Q3','Q4'])
 
# 索引降序
res1 = df.sort_index(ascending=False)
 
# 按列索引名排序:
# 在索引方向上排序
res2 = df.sort_index(axis=1, ascending=False)

以下是具体的运行结果展示。

原始DataFrame数据df如下所示:

执行降序排序后的结果res1。

执行按列索引名降序排序后的结果res2。

使用reindex自定义行列顺序

除了基本的索引排序,Pandas还提供了更多灵活的处理方式,例如df.reindex()允许用户指定自定义顺序的索引,从而重新定义行和列的显示顺序。

# 更多方法如下:
s.sort_index() # 升序排列
df.sort_index() # df也是按索引进行排序
df.team.sort_index()
s.sort_index(ascending=False) # 降序排列
s.sort_index(inplace=True) # 排序后生效,改变原数据
# 索引重新0-(n-1)排,可以得到它的排序号
s.sort_index(ignore_index=True)
s.sort_index(na_position='first') # 空值在前,另'last'表示空值在后
s.sort_index(level=1) # 如果多层,排一级
s.sort_index(level=1, sort_remaining=False) # 这层不排
# 行索引排序,表头排序
df.sort_index(axis=1) # 会把列按列名顺序排序

具体操作示例如下:

import pandas as pd
 
df = pd.DataFrame({
        'A':[1,2,3],
        'B':[4,5,6]
        },index=['a','b','c'])
 
# 按要求重新指定索引顺序
res1 = df.reindex(['c','b','a'])
 
# 指定列顺序
res2 = df.reindex(['B','A'], axis=1)

以下是reindex操作的结果展示。

原始DataFrame数据df。

按自定义行索引顺序重排后的结果res1。

按自定义列索引顺序重排后的结果res2。

以上就是关于Pandas中索引排序df.sort_index()及重排df.reindex()的实现详解。如需了解更多相关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 算法库。