熊猫真的很棒,但我真的很惊讶,它是如何从Pandas.DataFrame中检索值的效率低下。在下面的玩具示例中,即使DataFrame.iloc方法比字典慢100倍以上。熊猫DataFrame性能
问题:这里的教训只是字典是更好的查找价值的方法吗?是的,我明白这正是他们所做的。但是我只是想知道我是否缺少DataFrame查询性能。
我意识到这个问题比“询问”更“沉思”,但我会接受一个答案,提供对此的见解或观点。谢谢。
import timeit
setup = '''
import numpy, pandas
df = pandas.DataFrame(numpy.zeros(shape=[10, 10]))
dictionary = df.to_dict()
'''
f = ['value = dictionary[5][5]', 'value = df.loc[5, 5]', 'value = df.iloc[5, 5]']
for func in f:
print func
print min(timeit.Timer(func, setup).repeat(3, 100000))
值=字典[5] [5]
0.130625009537
值= df.loc [5,5]
19.4681699276
值= DF。 iloc [5,5]
17.2575249672
回答这样也许添加常见问题,在这里看到: https://github.com/pydata/pandas/issues/3871 – Jeff
感谢这两个非常有启发性的例子,还有一个比喻,作为一个骑车人,我很欣赏。 – Owen