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)[source]
-
Sort Series by index labels.
Returns a new Series sorted by label if inplace argument is
False
, otherwise updates the original series and returns None.- Parameters
-
- axis:int, default 0
-
Axis to direct sorting. This can only be 0 for Series.
- level:int, optional
-
If not None, sort on values in specified index level(s).
- ascending:bool or list-like of bools, default True
-
Sort ascending vs. descending. When the index is a MultiIndex the sort direction can be controlled for each level individually.
- inplace:bool, default False
-
If True, perform operation in-place.
- kind:{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, default ‘quicksort’
-
Choice of sorting algorithm. See also
numpy.sort()
for more information. ‘mergesort’ and ‘stable’ are the only stable algorithms. For DataFrames, this option is only applied when sorting on a single column or label. - na_position:{‘first’, ‘last’}, default ‘last’
-
If ‘first’ puts NaNs at the beginning, ‘last’ puts NaNs at the end. Not implemented for MultiIndex.
- sort_remaining:bool, default True
-
If True and sorting by level and index is multilevel, sort by other levels too (in order) after sorting by specified level.
- ignore_index:bool, default False
-
If True, the resulting axis will be labeled 0, 1, …, n - 1.
New in version 1.0.0.
- key:callable, optional
-
If not None, apply the key function to the index values before sorting. This is similar to the key argument in the builtin
sorted()
function, with the notable difference that this key function should be vectorized. It should expect anIndex
and return anIndex
of the same shape.New in version 1.1.0.
- Returns
-
- Series or None
-
The original Series sorted by the labels or None if
inplace=True
.
See also
DataFrame.sort_index
-
Sort DataFrame by the index.
DataFrame.sort_values
-
Sort DataFrame by the value.
Series.sort_values
-
Sort Series by the value.
Examples
>>> 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
Sort Descending
>>> s.sort_index(ascending=False) 4 d 3 a 2 b 1 c dtype: object
Sort Inplace
>>> s.sort_index(inplace=True) >>> s 1 c 2 b 3 a 4 d dtype: object
By default NaNs are put at the end, but use na_position to place them at the beginning
>>> 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
Specify index level to sort
>>> 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
Does not sort by remaining levels when sorting by levels
>>> 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
Apply a key function before sorting
>>> 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
© 2008–2021, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.3.4/reference/api/pandas.Series.sort_index.html