DataFrame.sort_values() / Series.sort_values()

Метод sort_values() сортирует данные по значениям одного или нескольких столбцов. Поддерживает разные направления для каждого ключа и стабильную сортировку.

Сигнатура

DataFrame.sort_values(by, *, axis=0, ascending=True, inplace=False,
                      kind="quicksort", na_position="last",
                      ignore_index=False, key=None)

Параметры

  • by — имя столбца или список столбцов.

  • ascending — направление; bool или список bool.

  • na_position — куда ставить NaN: "first" или "last".

  • ignore_index — сбросить индекс после сортировки.

  • key — функция, применяемая к ключу перед сортировкой.

Возвращаемое значение

Новый DataFrame / Series (или None при inplace=True).

Примеры

Пример 1. По одному столбцу

import pandas as pd

df = pd.DataFrame({
    "robot": ["P1", "P2", "P3"],
    "score": [80, 95, 70],
})
print(df.sort_values("score"))
  robot  score
2    P3     70
0    P1     80
1    P2     95

Пример 2. По убыванию

import pandas as pd

s = pd.Series([3, 1, 4, 1, 5])
print(s.sort_values(ascending=False))
4    5
2    4
0    3
1    1
3    1
dtype: int64

Пример 3. По нескольким столбцам с разными направлениями

import pandas as pd

df = pd.DataFrame({
    "zone":  ["A", "B", "A", "B"],
    "score": [80, 90, 95, 85],
})
print(df.sort_values(by=["zone", "score"], ascending=[True, False]))
  zone  score
2    A     95
0    A     80
1    B     90
3    B     85

Пример 4. NaN в начало

import pandas as pd
import numpy as np

s = pd.Series([3, np.nan, 1, 2])
print(s.sort_values(na_position="first"))
1    NaN
2    1.0
3    2.0
0    3.0
dtype: float64

Пример 5. Ключ для сортировки без учёта регистра

import pandas as pd

s = pd.Series(["Bb", "aa", "CC"])
print(s.sort_values(key=lambda x: x.str.lower()))
1    aa
0    Bb
2    CC
dtype: object

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.