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