РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
206 of 687 menu

Метод searchsorted

Метод searchsorted применяется к Series и возвращает индексы позиций, куда следует вставить переданные значения, чтобы сохранить порядок сортировки. Первым параметром передаются значения для поиска, вторым параметром можно задать сторону вставки ('left' или 'right'). Если серия не отсортирована, результат будет некорректным.

Синтаксис

ser.searchsorted(values[, side='left'])

Пример

Давайте найдём позиции для вставки значений в отсортированную серию:

import pandas as pd ser = pd.Series([1, 3, 5, 7, 9]) res = ser.searchsorted([4, 6]) print(res)

Результат выполнения кода:

[2 3]

Значение 4 следует вставить на позицию 2 (между 3 и 5), а значение 6 - на позицию 3 (между 5 и 7).

Пример

Рассмотрим разницу между сторонами вставки для повторяющихся значений:

import pandas as pd ser = pd.Series([1, 3, 3, 3, 7]) res_left = ser.searchsorted(3, side='left') res_right = ser.searchsorted(3, side='right') print(res_left, res_right)

Результат выполнения кода:

1 4

При вставке слева ('left') значение 3 вставляется перед первым совпадающим элементом (позиция 1), а при вставке справа ('right') - после последнего совпадающего (позиция 4).

Пример

Метод работает с серией, имеющей индекс. При этом возвращаются позиции по порядку элементов, а не по индексу:

import pandas as pd ser = pd.Series([2, 4, 6, 8, 10], index=['a', 'b', 'c', 'd', 'e']) res = ser.searchsorted([5, 7]) print(res)

Результат выполнения кода:

[2 3]

Возвращаются позиции в массиве значений (0-based), а не метки индекса 'a', 'b', 'c', 'd', 'e'.

Пример

Метод также работает, если серия содержит строковые значения:

import pandas as pd ser = pd.Series(['apple', 'banana', 'cherry', 'date']) res = ser.searchsorted(['blueberry', 'grape']) print(res)

Результат выполнения кода:

[2 4]

'blueberry' вставляется после 'banana' (позиция 2), а 'grape' - в конец серии (позиция 4).

Смотрите также

  • метод sort_values,
    который сортирует значения серии
  • метод isin,
    который проверяет наличие значений в серии
  • метод unique,
    который возвращает уникальные значения серии
  • метод reindex,
    который изменяет индекс серии
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить