pandas.Series.sort_index#
- Series.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
,则返回按标签排序的新 Series,否则更新原始系列并返回 None。- 参数:
- 轴{0 或 ‘index’}
未使用。参数需要与 DataFrame 兼容。
- 级别int, 可选
如果不是 None,则根据指定索引级别中的值进行排序。
- 升序布尔值或布尔值列表,默认为True
升序排序与降序排序。当索引是 MultiIndex 时,可以分别控制每个级别的排序方向。
- inplace布尔值, 默认为 False
如果为真,则就地执行操作。
- 种类{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, 默认 ‘quicksort’
排序算法的选择。更多信息请参见
numpy.sort()
。’mergesort’ 和 ‘stable’ 是仅有的稳定算法。对于 DataFrame,此选项仅在按单个列或标签排序时应用。- na_position{‘first’, ‘last’}, 默认 ‘last’
如果 ‘first’ 将 NaN 放在开头,’last’ 将 NaN 放在末尾。对于 MultiIndex 未实现。
- sort_remainingbool, 默认为 True
如果为真并且按级别和索引进行多级排序,则在按指定级别排序后也按其他级别(按顺序)排序。
- ignore_index布尔值, 默认为 False
如果为真,生成的轴将被标记为 0, 1, …, n - 1。
- 关键可调用的,可选的
如果不是 None,在排序之前将键函数应用于索引值。这类似于内置
sorted()
函数中的 key 参数,但显著的区别是这个 key 函数应该是 矢量化的。它应该期望一个Index
并返回一个相同形状的Index
。
- 返回:
- 系列或无
如果
inplace=True
,则按标签排序的原始序列或 None。
参见
DataFrame.sort_index
按索引排序 DataFrame。
DataFrame.sort_values
按值排序 DataFrame。
Series.sort_values
按值排序系列。
例子
>>> s = pd.Series(["a", "b", "c", "d"], index=[3, 2, 1, 4]) >>> s.sort_index() 1 c 2 b 3 a 4 d dtype: object
降序排序
>>> s.sort_index(ascending=False) 4 d 3 a 2 b 1 c dtype: object
默认情况下,NaN 值放在最后,但可以使用 na_position 将它们放在最前面
>>> s = pd.Series(["a", "b", "c", "d"], index=[3, 2, 1, np.nan]) >>> s.sort_index(na_position="first") NaN d 1.0 c 2.0 b 3.0 a dtype: object
指定索引级别进行排序
>>> arrays = [ ... np.array(["qux", "qux", "foo", "foo", "baz", "baz", "bar", "bar"]), ... np.array(["two", "one", "two", "one", "two", "one", "two", "one"]), ... ] >>> s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8], index=arrays) >>> s.sort_index(level=1) bar one 8 baz one 6 foo one 4 qux one 2 bar two 7 baz two 5 foo two 3 qux two 1 dtype: int64
按级别排序时不按剩余级别排序
>>> s.sort_index(level=1, sort_remaining=False) qux one 2 foo one 4 baz one 6 bar one 8 qux two 1 foo two 3 baz two 5 bar two 7 dtype: int64
在排序前应用一个键函数
>>> s = pd.Series([1, 2, 3, 4], index=["A", "b", "C", "d"]) >>> s.sort_index(key=lambda x: x.str.lower()) A 1 b 2 C 3 d 4 dtype: int64