慢速熊猫索引查找以获得唯一索引

时间:2020-03-26 13:31:49

标签: python pandas dataframe

使用熊猫数据框时,我想快速进行索引查找。如herethere所述,我了解我需要保持索引唯一,否则所有希望都将丢失。

我确保索引已排序且唯一:

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的速度(或<5倍范围内的值)?

0 个答案:

没有答案