pandas.Index.get_indexer_non_unique#
- Индекс.get_indexer_non_unique(цель)[источник]#
Вычислить индексатор и маску для нового индекса с учетом текущего индекса.
Индексатор должен затем использоваться как вход для ndarray.take для выравнивания текущих данных по новому индексу.
- Параметры:
- цельIndex
- Возвращает:
- индексаторnp.ndarray[np.intp]
Целые числа от 0 до n - 1, указывающие, что индекс в этих позициях соответствует целевым значениям. Пропущенные значения в цели помечаются как -1.
- missingnp.ndarray[np.intp]
Индексатор в цели значений, которые не найдены. Они соответствуют -1 в массиве индексатора.
Примеры
>>> index = pd.Index(['c', 'b', 'a', 'b', 'b']) >>> index.get_indexer_non_unique(['b', 'b']) (array([1, 3, 4, 1, 3, 4]), array([], dtype=int64))
В примере ниже нет совпадающих значений.
>>> index = pd.Index(['c', 'b', 'a', 'b', 'b']) >>> index.get_indexer_non_unique(['q', 'r', 't']) (array([-1, -1, -1]), array([0, 1, 2]))
По этой причине возвращаемый
indexerсодержит только целые числа, равные -1. Это демонстрирует, что нет соответствия между индексом иtargetзначения в этих позициях. Маска [0, 1, 2] в возвращаемом значении показывает, что первый, второй и третий элементы отсутствуют.Обратите внимание, что возвращаемое значение — это кортеж, содержащий два элемента. В примере ниже первый элемент — это массив местоположений в
index. Второй элемент — это маска, показывающая, что первый и третий элементы отсутствуют.>>> index = pd.Index(['c', 'b', 'a', 'b', 'b']) >>> index.get_indexer_non_unique(['f', 'b', 's']) (array([-1, 1, 3, 4, -1]), array([0, 2]))