TimeSeriesDataFrame.sort_index

TimeSeriesDataFrame.sort_index(*args, **kwargs) TimeSeriesDataFrame[source]

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

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

参数
  • axis ({0'index', 1'columns'}, 默认 0) – 用于排序的轴线。值 0 表示行,1 表示列。

  • level (int级别名称int 列表级别名称列表) – 如果不为 None,则按指定索引级别中的值进行排序。

  • ascending (boolbool 的列表状对象, 默认 True) – 升序还是降序排序。当索引为 MultiIndex 时,可以单独控制每个级别的排序方向。

  • inplace (bool, 默认 False) – 是否修改 DataFrame 而不是创建新的。

  • kind ({'quicksort', 'mergesort', 'heapsort', 'stable'}, 默认 'quicksort') – 排序算法的选择。更多信息请参见 numpy.sort()mergesortstable 是唯一稳定的算法。对于 DataFrame,此选项仅在对单个列或标签进行排序时应用。

  • na_position ({'first', 'last'}, 默认 'last') – 如果是 first,则将 NaNs 放在开头;如果是 last,则将 NaNs 放在末尾。对 MultiIndex 未实现。

  • sort_remaining (bool, 默认 True) – 如果为 True 且按级别排序且索引是多级别的,则在按指定级别排序后也按其他级别(按顺序)进行排序。

  • ignore_index (bool, 默认 False) – 如果为 True,则结果轴将被标记为 0, 1, …, n - 1。

  • key (callable, 可选) – 如果不为 None,则在排序前将 key 函数应用于索引值。这类似于内置函数 sorted() 中的 key 参数,但有一个显着区别是此 key 函数应是向量化的。它应该期望接收一个 Index 并返回一个具有相同形状的 Index。对于 MultiIndex 输入,key 函数应用于每个级别。

返回

按标签排序后的原始 DataFrame 或 None(如果 inplace=True)。

返回类型

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