pandas.DataFrame.sort_index#

DataFrame.sort_index(*, axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False, key=None)[源代码]#

按标签(沿某个轴)对对象进行排序。

如果 `inplace` 参数为 `False`,则返回一个新的按标签排序的 DataFrame;否则,更新原始 DataFrame 并返回 None。

参数:
axis{0 或 ‘index’, 1 或 ‘columns’}, 默认为 0

排序的轴。值 0 表示行,1 表示列。

levelint 或 level 名称或 int 列表或 level 名称列表

如果不是 None,则按指定索引级别(或级别)的值进行排序。

ascendingbool 或 bool 列表,默认为 True

升序或降序排序。当索引是 MultiIndex 时,可以单独控制每个级别的排序方向。

inplacebool, default False

是否修改 DataFrame 而不是创建新 DataFrame。

kind{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, 默认为 ‘quicksort’

排序算法的选择。更多信息请参见 numpy.sort()。`mergesort` 和 `stable` 是唯一稳定的算法。对于 DataFrame,此选项仅在按单列或标签排序时应用。

na_position{‘first’, ‘last’}, 默认为 ‘last’

如果为 `first`,则将 NaN 放在开头;`last` 将 NaN 放在末尾。不适用于 MultiIndex。

sort_remainingbool,默认为 True

如果为 True 且按级别排序,并且索引是多级索引,则在按指定级别排序后,还会按其他级别(按顺序)进行排序。

ignore_indexbool, default False

如果为 True,则结果轴将标记为 0, 1, ..., n - 1。

keycallable,可选

如果不是 None,则在排序前将 key 函数应用于索引值。这类似于内置的 `sorted()` 函数中的 `key` 参数,但有一个显著的区别是,此 `key` 函数应该是向量化的。它应该接受一个 `Index` 并返回一个形状相同的 `Index`。对于 MultiIndex 输入,key 会按级别应用。

返回:
DataFrame 或 None

按标签排序的原始 DataFrame,如果 `inplace=True` 则为 None。

另请参阅

Series.sort_index

按索引对 Series 进行排序。

DataFrame.sort_values

按值对 DataFrame 进行排序。

Series.sort_values

按值对 Series 进行排序。

示例

>>> df = pd.DataFrame(
...     [1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=["A"]
... )
>>> df.sort_index()
     A
1    4
29   2
100  1
150  5
234  3

默认情况下,它按升序排序,要按降序排序,请使用 `ascending=False`。

>>> df.sort_index(ascending=False)
     A
234  3
150  5
100  1
29   2
1    4

可以指定一个 key 函数,该函数在排序前应用于索引。对于 `MultiIndex`,它会分别应用于每个级别。

>>> df = pd.DataFrame({"a": [1, 2, 3, 4]}, index=["A", "b", "C", "d"])
>>> df.sort_index(key=lambda x: x.str.lower())
   a
A  1
b  2
C  3
d  4