Series.
sort_index
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.
False
Axis to direct sorting. This can only be 0 for Series.
If not None, sort on values in specified index level(s).
Sort ascending vs. descending. When the index is a MultiIndex the sort direction can be controlled for each level individually.
If True, perform operation in-place.
Choice of sorting algorithm. See also numpy.sort() for more information. ‘mergesort’ is the only stable algorithm. For DataFrames, this option is only applied when sorting on a single column or label.
numpy.sort()
If ‘first’ puts NaNs at the beginning, ‘last’ puts NaNs at the end. Not implemented for MultiIndex.
If True and sorting by level and index is multilevel, sort by other levels too (in order) after sorting by specified level.
If True, the resulting axis will be labeled 0, 1, …, n - 1.
New in version 1.0.0.
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 an Index and return an Index of the same shape.
sorted()
Index
New in version 1.1.0.
The original Series sorted by the labels.
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