亲自尝试一下:
import pandas as pd
s=pd.Series(xrange(5000000))
%timeit s.loc[[0]] # You need pandas 0.15.1 or newer for it to be that slow
1 loops, best of 3: 445 ms per loop
Run Code Online (Sandbox Code Playgroud)
更新:这是大熊猫的合法错误,可能在2014年8月左右的0.15.1中引入.解决方法:在使用旧版本的pandas时等待新版本; 得到一个前沿的开发.来自github的版本; 在您的发布中手动执行单行修改pandas; 暂时使用.ix而不是.loc.
我有480万行的数据帧,以及选择使用的单个行.iloc[[ id ]](具有单个元素的列表)需要489毫秒,几乎一半的第二,慢1,800x倍的相同.ix[[ id ]],并慢于3,500x倍 .iloc[id](使ID作为一个值,而不是一个列表).公平地说,.loc[list]无论列表的长度如何都需要大约相同的时间,但我不想花费489毫秒,特别是当它.ix快一千倍时,并产生相同的结果.我的理解.ix应该是慢一点,不是吗?
我正在使用熊猫0.15.1.关于索引和选择数据的优秀教程表明,它.ix在某种程度上更为通用,并且可能比.loc和更慢.iloc.具体来说,它说
但是,当轴基于整数时,仅支持基于标签的访问而非位置访问.因此,在这种情况下,通常最好是明确的并使用.iloc或.loc.
这是一个带有基准的iPython会话:
print 'The dataframe has …Run Code Online (Sandbox Code Playgroud)