Метод contains
Метод contains применяется к IntervalIndex
и проверяет, принадлежит ли переданное значение
хотя бы одному интервалу индекса. Метод принимает
один обязательный параметр - скалярное значение
для проверки. Возвращает bool: True,
если значение находится внутри любого из интервалов,
иначе False. Проверка учитывает включение
границ в зависимости от параметра closed
интервалов.
Синтаксис
interval_index.contains(value)
Пример
Создадим IntervalIndex из интервалов и проверим вхождение значения:
import pandas as pd
idx = pd.IntervalIndex.from_breaks([0, 2, 4, 6])
print(idx)
print(idx.contains(3))
Результат выполнения кода:
IntervalIndex([(0, 2], (2, 4], (4, 6]], dtype='interval[int64, right]')
True
Пример
Проверим значение, которое не попадает ни в один интервал:
import pandas as pd
idx = pd.IntervalIndex.from_breaks([0, 2, 4, 6])
print(idx.contains(7))
Результат выполнения кода:
False
Пример
Проверим значение на границе интервала с различными параметрами closed:
import pandas as pd
idx_left = pd.IntervalIndex.from_breaks([0, 2, 4], closed='left')
idx_right = pd.IntervalIndex.from_breaks([0, 2, 4], closed='right')
print(idx_left)
print(idx_left.contains(2))
print(idx_right.contains(2))
Результат выполнения кода:
IntervalIndex([(0, 2], (2, 4]], dtype='interval[int64, right]')
True
False
Пример
Используем contains с DataFrame для фильтрации строк:
import pandas as pd
idx = pd.IntervalIndex.from_breaks([0, 10, 20, 30])
df = pd.DataFrame({'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50]})
df.index = idx
print(df)
print(df[idx.contains(15)])
Результат выполнения кода:
a b
(0, 10] 1 10
(10, 20] 2 20
(20, 30] 3 30
a b
(10, 20] 2 20
Смотрите также
-
класс
IntervalIndex,
который представляет индекс из интервалов -
метод
overlaps,
который проверяет пересечение интервалов -
атрибут
left,
который возвращает левые границы интервалов -
атрибут
right,
который возвращает правые границы интервалов