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()。mergesort 和 stable 是唯一的稳定算法。对于 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