Медленный pandas Поиск индекса для уникального индекса - PullRequest
1 голос
/ 26 марта 2020

Я хотел бы иметь быстрый просмотр индекса при использовании pandas кадра данных. Как отмечалось здесь и там , я понимаю, что мне нужно сохранить свой индекс уникальным, иначе вся надежда потеряна.

Я убедился, что индекс отсортирован и уникальный:

df = df.sort_index()
assert df.index.is_unique

Я измерил скорость поиска:

%timeit df.at[tuple(q.values), 'column']
1000 loops, best of 3: 185 µs per loop

Затем, когда я переместил указатель в отдельный словарь python:

index = {}
for i in df.index:
  index[i] = np.random.randint(1000)
assert len(index) == len(df.index)

Я получил огромное ускорение:

%timeit index[tuple(q.values)]
100000 loops, best of 3: 2.7 µs per loop

Почему это так? Я делаю что-то неправильно? Есть ли способ воспроизвести скорость python dict (или что-то в диапазоне <5x) в индексе pandas? </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...