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