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

Метод slice_indexer

Метод slice_indexer применяется к объекту Index и возвращает объект слайсера (slice), который можно использовать для извлечения подмножества элементов по меткам. Метод принимает начальную и конечную метки, а также параметры включения границ, и возвращает слайс, который может быть применён к данным или к самому индексу.

Синтаксис

index.slice_indexer(start=None, end=None, step=None, kind=None)

Параметры

Параметр start - начальная метка диапазона (включительно по умолчанию). Если не указан, начало берётся от первого элемента.

Параметр end - конечная метка диапазона (включительно по умолчанию). Если не указан, конец берётся до последнего элемента.

Параметр step - шаг слайса. По умолчанию равен 1.

Параметр kind - указывает тип используемого алгоритма. Может принимать значения 'loc' или 'getitem'. По умолчанию None.

Пример

Давайте создадим индекс с числами и получим слайс для диапазона меток от 2 до 4:

import pandas as pd idx = pd.Index([1, 2, 3, 4, 5]) sl = idx.slice_indexer(2, 4) print(sl)

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

slice(1, 4, None)

Пример

Применим полученный слайс для извлечения части индекса:

import pandas as pd idx = pd.Index(['a', 'b', 'c', 'd', 'e']) sl = idx.slice_indexer('b', 'd') res = idx[sl] print(res)

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

Index(['b', 'c', 'd'], dtype='object')

Пример

Используем параметр step для создания слайса с шагом:

import pandas as pd idx = pd.Index([10, 20, 30, 40, 50, 60]) sl = idx.slice_indexer(20, 60, step=2) res = idx[sl] print(res)

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

Index([20, 40, 60], dtype='int64')

Пример

Если метки не существуют в индексе, метод найдёт ближайшие подходящие позиции:

import pandas as pd idx = pd.Index([1, 3, 5, 7, 9]) sl = idx.slice_indexer(2, 8) res = idx[sl] print(res)

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

Index([3, 5, 7], dtype='int64')

Пример

Применим слайс к данным DataFrame через метод loc:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }, index=['row1', 'row2', 'row3', 'row4', 'row5']) sl = df.index.slice_indexer('row2', 'row4') res = df.loc[sl] print(res)

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

a b row2 2 20 row3 3 30 row4 4 40

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

  • метод get_loc,
    который возвращает позицию для переданной метки
  • метод get_indexer,
    который возвращает массив позиций для списка меток
  • метод isin,
    который проверяет вхождение меток в указанное множество
  • метод drop,
    который удаляет указанные метки из индекса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить