Использует ли Pandas хеширование для одноиндексированного фрейма данных и двоичный поиск для многоиндексированного фрейма данных? - PullRequest
4 голосов
/ 03 марта 2020

У меня всегда было впечатление, что Pandas использует хеширование при индексации строк в кадре данных, так что такие операции, как df.loc [some_label] - это O (1).

Однако я только что понял сегодня, что это не так, по крайней мере для мультииндексированных данных. Как указано в документе , «индексирование будет работать, даже если данные не отсортированы, но будет довольно неэффективным (и покажет PerformanceWarning)». Кажется, что некоторые статьи, которые я нашел, предлагают для мультииндексного фрейма данных, Pandas использует индексацию на основе бинарного поиска, если вы вызвали sort_index () для фрейма данных; в противном случае он просто линейно сканирует строки.

Мой вопрос:

  1. Использует ли одноиндексированный фрейм данных индексирование на основе ha sh или нет?
  2. Если не для вопроса 1, использует ли он бинарный поиск при вызове sort_index (), и линейное сканирование в противном случае, как в случае многоиндексированного фрейма данных?
  3. Если да для вопроса 1, почему Pandas решите не использовать индексирование на основе ha sh также для мультииндекса?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...