pandas.Series.sort_values#

Series.sort_values(*, ось=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, ключ=None)[источник]#

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

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

Параметры:
ось{0 или ‘index’}

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

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

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

inplacebool, по умолчанию False

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

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

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

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

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

ignore_indexbool, по умолчанию False

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

ключвызываемый объект, необязательный

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

Возвращает:
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

Сортировка значений с размещением NA первыми

>>> 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

Сортировка с использованием ключевой функции. Ваша ключ функция будет получать 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