Я пытаюсь использовать Pandas Index
вручную для упрощения двунаправленного поиска между ключевыми значениями и позициями.
Предположим, у меня есть индекс:
index = pd.Index(['a', 'b', 'c', 'd'])
Если я хочу преобразовать позиции в индексы, это просто:
index[pd.Series([0,3,2,0,0,1])
урожайность 'a', 'd', 'c', 'a', 'a', 'b'
.
Однако я не могу найти способ сделать другое направление в массе: учитывая последовательность клавиш, как мне определить их позиции?
index.???[pd.Series(['b', 'c', 'a'])]
Я хочу 1, 2, 0
. Я могу сделать это для отдельных элементов с помощью get_loc
, но эта функция не векторизована.
Панды, кажется, делают это под капотом - как еще .loc
поиск будет работать? - но я не могу найти открытый метод для этого из кода Python. Если это как-то выставлено в Cython, это будет приемлемо; Мой вариант использования готовит массивы для передачи подпрограммам Cython для оптимизированных вычислений.