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 (bool 或 bool 的列表状对象, 默认 True) – 升序还是降序排序。当索引为 MultiIndex 时,可以单独控制每个级别的排序方向。
inplace (bool, 默认 False) – 是否修改 DataFrame 而不是创建新的。
kind ({'quicksort', 'mergesort', 'heapsort', 'stable'}, 默认 'quicksort') – 排序算法的选择。更多信息请参见
numpy.sort()
。mergesort 和 stable 是唯一稳定的算法。对于 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