Введите нетипизированный пакет с типами из другого пакета

Когда индекс уникален, панды используют хэш-таблицу для сопоставления ключа со значением O (1). Когда индекс не является уникальным и сортируется, pandas используют двоичный поиск O (logN), когда индексу случайным упорядоченным pandas необходимо проверить все ключи в индексе O (N).

Вы можете вызвать sort_index:

import numpy as np
import pandas as pd
x = np.random.randint(0, 200, 10**6)
df1 = pd.DataFrame({'x':x})
df2 = df1.set_index('x', drop=False)
df3 = df2.sort_index()
%timeit df1.loc[100]
%timeit df2.loc[100]
%timeit df3.loc[100]

результат:

10000 loops, best of 3: 71.2 µs per loop
10 loops, best of 3: 38.9 ms per loop
10000 loops, best of 3: 134 µs per loop
0
задан Qwerty 22 February 2019 в 19:22
поделиться