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