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。

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

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

级别整数或级别名称或整数列表或级别名称列表

如果不是 None,则按指定索引级别中的值排序。

升序布尔值或布尔值列表,默认值为 True

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

inplace布尔值, 默认为 False

是否修改 DataFrame 而不是创建一个新的。

种类{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, 默认 ‘quicksort’

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

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

如果 first,则在开头放置 NaNs;last 在末尾放置 NaNs。对于 MultiIndex 未实现。

sort_remaining布尔值, 默认为 True

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

ignore_index布尔值, 默认为 False

如果为真,生成的轴将被标记为 0, 1, …, n - 1。

关键可调用,可选

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

返回:
DataFrame 或 None

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

参见

Series.sort_index

按索引对系列进行排序。

DataFrame.sort_values

按值排序 DataFrame。

Series.sort_values

按值对系列进行排序。

例子

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