Метод sort_values
Метод sort_values применяется к объекту Index
и возвращает новый индекс с отсортированными значениями.
По умолчанию сортировка выполняется в порядке возрастания.
Метод не изменяет исходный индекс, а создаёт новый отсортированный объект.
Основные параметры метода: ascending (по умолчанию True)
и na_position (управляет положением пропущенных значений, по умолчанию 'last').
Синтаксис
index.sort_values([ascending=True, na_position='last'])
Пример
Давайте создадим индекс с числами в произвольном порядке и отсортируем его по возрастанию:
import pandas as pd
index = pd.Index([5, 2, 8, 1, 3])
sorted_index = index.sort_values()
print(sorted_index)
Результат выполнения кода:
Index([1, 2, 3, 5, 8], dtype='int64')
Пример
Отсортируем индекс по убыванию с помощью параметра ascending:
import pandas as pd
index = pd.Index([5, 2, 8, 1, 3])
sorted_index = index.sort_values(ascending=False)
print(sorted_index)
Результат выполнения кода:
Index([8, 5, 3, 2, 1], dtype='int64')
Пример
Рассмотрим сортировку строкового индекса:
import pandas as pd
index = pd.Index(['b', 'a', 'd', 'c'])
sorted_index = index.sort_values()
print(sorted_index)
Результат выполнения кода:
Index(['a', 'b', 'c', 'd'], dtype='object')
Пример
Сортировка индекса с пропущенными значениями. По умолчанию они помещаются в конец:
import pandas as pd
import numpy as np
index = pd.Index([5, np.nan, 2, np.nan, 8])
sorted_index = index.sort_values()
print(sorted_index)
Результат выполнения кода:
Index([2.0, 5.0, 8.0, nan, nan], dtype='float64')
Пример
Поместим пропущенные значения в начало с помощью параметра na_position:
import pandas as pd
import numpy as np
index = pd.Index([5, np.nan, 2, np.nan, 8])
sorted_index = index.sort_values(na_position='first')
print(sorted_index)
Результат выполнения кода:
Index([nan, nan, 2.0, 5.0, 8.0], dtype='float64')
Пример
Применим сортировку к индексу DataFrame. Обратите внимание, что метод sort_values применяется к самому индексу, а не к данным таблицы:
import pandas as pd
df = pd.DataFrame({
'a': [10, 20, 30, 40, 50],
'b': [100, 200, 300, 400, 500]
}, index=[5, 2, 8, 1, 3])
print('Исходный индекс:')
print(df.index)
print('\nОтсортированный индекс:')
print(df.index.sort_values())
Результат выполнения кода:
Исходный индекс:
Index([5, 2, 8, 1, 3], dtype='int64')
Отсортированный индекс:
Index([1, 2, 3, 5, 8], dtype='int64')
Смотрите также
-
метод
argsort,
который возвращает индексы для сортировки -
метод
unique,
который возвращает уникальные значения индекса -
метод
drop_duplicates,
который удаляет дубликаты из индекса -
атрибут
is_monotonic_increasing,
который проверяет, является ли индекс монотонно возрастающим