pandas.Index.get_indexer#

окончательный Индекс.get_indexer(цель, метод=None, limit=None, допуск=None)[источник]#

Вычислить индексатор и маску для нового индекса с учетом текущего индекса.

Индексатор должен затем использоваться как вход для ndarray.take для выравнивания текущих данных по новому индексу.

Параметры:
цельIndex
метод{None, 'pad'/'ffill', 'backfill'/'bfill', 'nearest'}, опционально
  • по умолчанию: только точные совпадения.

  • pad / ffill: найти ПРЕДЫДУЩЕЕ значение индекса, если точного совпадения нет.

  • backfill / bfill: использовать СЛЕДУЮЩЕЕ значение индекса, если нет точного совпадения

  • nearest: использовать БЛИЖАЙШЕЕ значение индекса, если нет точного совпадения. Равные расстояния разрешаются предпочтением большего значения индекса.

limitint, необязательный

Максимальное количество последовательных меток в target для соответствия неточным совпадениям.

допускнеобязательный

Максимальное расстояние между исходными и новыми метками для неточных совпадений. Значения индекса в соответствующих местах должны удовлетворять уравнению abs(index[indexer] - target) <= tolerance.

Допуск может быть скалярным значением, которое применяет одинаковый допуск ко всем значениям, или list-like, которое применяет переменный допуск на элемент. List-like включает list, tuple, array, Series и должен быть того же размера, что и индекс, а его dtype должен точно соответствовать типу индекса.

Возвращает:
np.ndarray[np.intp]

Целые числа от 0 до n - 1, указывающие, что индекс в этих позициях соответствует целевым значениям. Пропущенные значения в цели помечаются как -1.

Примечания

Возвращает -1 для несопоставленных значений, подробное объяснение см. в примере ниже.

Примеры

>>> index = pd.Index(['c', 'a', 'b'])
>>> index.get_indexer(['a', 'b', 'x'])
array([ 1,  2, -1])

Обратите внимание, что возвращаемое значение - это массив позиций в index и x помечается как -1, так как не входит в index.