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。

Parameters:
axis{0 或 ‘index’, 1 或 ‘columns’}, default 0

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

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

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

ascendingbool 或布尔值列表,默认为 True

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

inplacebool,默认 False

是修改 DataFrame 还是创建新的 DataFrame。

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

排序算法的选择。有关更多信息,请参阅 numpy.sort()mergesortstable 是唯一的稳定算法。对于 DataFrames,此选项仅在按单个列或标签排序时应用。

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

如果为 first,则将 NaN 放在开头;last 将 NaN 放在末尾。不支持 MultiIndex。

sort_remainingbool, default True

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

ignore_indexbool,默认 False

如果为 True,则生成的轴标签为 0, 1, …, n - 1。

keycallable,可选

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

Returns:
DataFrame 或 None

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

参见

Series.sort_index

按索引对 Series 进行排序。

DataFrame.sort_values

按值对 DataFrame 进行排序。

Series.sort_values

按值对 Series 进行排序。

Examples

>>> 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

可以指定一个键函数,该函数在排序前应用于索引。对于 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