使用Pandas时,访问相同的行索引两次比获得两个不同的行要慢。
r = pd.Series(index=range(50000))
%timeit r.ix[[0,1]] #1000 loops, best of 3: 276 µs per loop
%timeit r.ix[[0,0]] #100 loops, best of 3: 3.83 ms per loop
非唯一索引案例使用此较慢的函数(由prun
标识):
{method 'get_indexer_non_unique' of 'pandas.index.IndexEngine' objects}
我理解,如果Series的索引具有非唯一元素,我们就不能再将其视为哈希表,因此需要使用此函数。如果我们要求的行列表具有非唯一元素,为什么会出现这种情况?我很惊讶熊猫甚至“知道”这个。