Spec-Zone.ru › pandas 1

pandas.Series.sort_values

Series.sort_values(axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)[source]

Сортировка по значениям.

Сортировка Series по возрастанию или убыванию по какому-либо критерию.

Parameters
axis:{0 or ‘index’}

Не используется. Параметр необходим для совместимости с DataFrame.

ascending:bool или список bool, по умолчанию True

Если True, сортировка по возрастанию, иначе по убыванию.

inplace:bool, по умолчанию False

Если True, операция выполняется на месте.

kind:{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, по умолчанию ‘quicksort’

Выбор алгоритма сортировки. См. также numpy.sort() для получения дополнительной информации. ‘mergesort’ и ‘stable’ — единственные стабильные алгоритмы.

na_position:{‘first’ or ‘last’}, по умолчанию ‘last’

Аргумент ‘first’ помещает NaN в начало, ‘last’ — в конец.

ignore_index:bool, по умолчанию False

Если True, результирующая ось будет помечена 0, 1, …, n - 1.

Новое в версии 1.0.0.

key:callable, необязательно

Если не None, применяет функцию key к значениям Series перед сортировкой. Это аналогично аргументу key в встроенной функции sorted(), с заметным отличием, что эта функция key должна быть векторизованной. Она должна принимать Series и возвращать похожий на массив объект.

Новое в версии 1.1.0.

Returns
Series или None

Отсортированная Series или None, если inplace=True.

См. также

Series.sort_index

Сортировка по индексам Series.

DataFrame.sort_values

Сортировка DataFrame по значениям вдоль оси.

DataFrame.sort_index

Сортировка DataFrame по индексам.

Примеры

>>> s = pd.Series([np.nan, 1, 3, 10, 5])
>>> s
0     NaN
1     1.0
2     3.0
3     10.0
4     5.0
dtype: float64

Сортировка по возрастанию (по умолчанию)

>>> s.sort_values(ascending=True)
1     1.0
2     3.0
4     5.0
3    10.0
0     NaN
dtype: float64

Сортировка по убыванию

>>> s.sort_values(ascending=False)
3    10.0
4     5.0
2     3.0
1     1.0
0     NaN
dtype: float64

Сортировка на месте

>>> s.sort_values(ascending=False, inplace=True)
>>> s
3    10.0
4     5.0
2     3.0
1     1.0
0     NaN
dtype: float64

Сортировка, помещая NaN в начало

>>> s.sort_values(na_position='first')
0     NaN
1     1.0
2     3.0
4     5.0
3    10.0
dtype: float64

Сортировка строки строк

>>> s = pd.Series(['z', 'b', 'd', 'a', 'c'])
>>> s
0    z
1    b
2    d
3    a
4    c
dtype: object
>>> s.sort_values()
3    a
1    b
4    c
2    d
0    z
dtype: object

Сортировка с помощью функции key. Ваша функция key получит Series значений и должна вернуть массив.

>>> s = pd.Series(['a', 'B', 'c', 'D', 'e'])
>>> s.sort_values()
1    B
3    D
0    a
2    c
4    e
dtype: object
>>> s.sort_values(key=lambda x: x.str.lower())
0    a
1    B
2    c
3    D
4    e
dtype: object

NumPy ufuncs хорошо работают здесь. Например, сортировка по sin значения.

>>> s = pd.Series([-4, -2, 0, 2, 4])
>>> s.sort_values(key=np.sin)
1   -2
4    4
2    0
0   -4
3    2
dtype: int64

Можно использовать более сложные пользовательские функции, если они принимают Series и возвращают массив.

>>> s.sort_values(key=lambda x: (np.tan(x.cumsum())))
0   -4
3    2
4    4
1   -2
2    0
dtype: int64

© 2008–2022, 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.5.0/reference/api/pandas.Series.sort_values.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API