Сообщить об ошибке.

Метод Series.between() модуля pandas в Python

Отбор значений Series, находящихся между граничными значениями

Синтаксис:

Series.between(left, right, inclusive='both')

Есть также метод .between_time(), который предоставляется как объектом pandas.Series так и pandas.DataFrame.

Параметры:

  • left: левая граница.
  • right: правая граница.
  • inclusive: отвечает за включение границ. То есть, устанавливать ли каждую границу как закрытую или открытую. Может принимать значения: 'both', 'neither', 'left', 'right'.

Возвращаемое значение:

  • логическое значение Series, эквивалентное left <= Series <= right

Описание:

Обратите внимание, что метод Series.between() предоставляются только объектом pandas.Series.

Метод Series.between() библиотеки pandas возвращает логическое значение Series, эквивалентное left <= Series <= right. Другими словами возвращает логический вектор, содержащий значение True, везде, где соответствующий элемент Series находится между граничными значениями left и right. Значения NA обрабатываются как False.

Метод Series.between() эквивалентен условию: (left <= ser) & (ser <= right).

Дополнительно смотрите методы DataFrame.between_time() и Series.between_time().

Пример использования Series.between():

>>> import pandas as pd
>>> import numpy as np
>>> s = pd.Series([2, 0, 4, 8, np.nan])
>>> s.between(1, 4)
# 0     True
# 1    False
# 2     True
# 3    False
# 4    False
# dtype: bool

Используя "логическую индексацию" можно посмотреть собственно результаты:

>>> s[s.between(1, 4)]
# 0    2.0
# 2    4.0
# dtype: float64

Для инверсии результатов можно применить оператор отрицания ~ (логической маски), к тому же, из результатов можно исключить значение NA, удалив их методом Series.dropna():

>>> s.dropna()[~s.between(1, 4)]
1    0.0
3    8.0
dtype: float64

Вернемся к примерам использования Series.between(). При значении аргумента inclusive="neither" граничные значения исключаются:

>>> s.between(1, 4, inclusive="neither")
# 0     True
# 1    False
# 2    False
# 3    False
# 4    False
# dtype: bool

Аргументы left и right могут быть любыми скалярными значениями:

>>> s = pd.Series(['Alice', 'Bob', 'Carol', 'Eve'])
>>> s.between('Anna', 'Daniel')
# 0    False
# 1     True
# 2     True
# 3    False
# dtype: bool