Класс IntervalIndex
Класс IntervalIndex применяется для создания индекса,
состоящего из интервалов. Каждый элемент такого индекса
представляет собой полуоткрытый или закрытый интервал
с левой и правой границами. Этот индекс удобно использовать
при работе с бинированием данных, временными промежутками
и категориальными переменными. Класс принимает параметры:
data - список интервалов, closed - тип
замкнутости интервалов ('left', 'right', 'both', 'neither').
Синтаксис
pd.IntervalIndex(data, closed='right')
Пример
Давайте создадим IntervalIndex из списка интервалов:
import pandas as pd
intervals = [pd.Interval(0, 1), pd.Interval(1, 2), pd.Interval(2, 3)]
idx = pd.IntervalIndex(intervals)
print(idx)
Результат выполнения кода:
IntervalIndex([(0, 1], (1, 2], (2, 3]], dtype='interval[int64, right]')
Пример
Создадим IntervalIndex с указанием типа замкнутости:
import pandas as pd
intervals = [pd.Interval(0, 1, closed='both'), pd.Interval(1, 2, closed='both')]
idx = pd.IntervalIndex(intervals, closed='both')
print(idx)
Результат выполнения кода:
IntervalIndex([[0, 1], [1, 2]], dtype='interval[int64, both]')
Пример
Создадим DataFrame с интервальным индексом:
import pandas as pd
intervals = [pd.Interval(0, 1), pd.Interval(1, 2), pd.Interval(2, 3)]
idx = pd.IntervalIndex(intervals)
df = pd.DataFrame({'a': [1, 2, 3], 'b': [10, 20, 30]}, index=idx)
print(df)
Результат выполнения кода:
a b
(0, 1] 1 10
(1, 2] 2 20
(2, 3] 3 30
Пример
Выполним поиск по интервальному индексу:
import pandas as pd
intervals = [pd.Interval(0, 1), pd.Interval(1, 2), pd.Interval(2, 3)]
idx = pd.IntervalIndex(intervals)
df = pd.DataFrame({'a': [1, 2, 3]}, index=idx)
res = df.loc[pd.Interval(1, 2)]
print(res)
Результат выполнения кода:
a 2
Name: (1, 2], dtype: int64
Смотрите также
-
метод
from_breaks,
который создаёт интервалы по границам -
метод
from_arrays,
который создаёт интервалы из двух массивов -
метод
from_tuples,
который создаёт интервалы из кортежей -
атрибут
closed,
который хранит тип замкнутости интервалов