pandas.MultiIndex.get_indexer#
- MultiIndex.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.