最佳答案
熊猫真的很棒,但是我真的很惊讶从熊猫身上获取价值是多么的低效。数据框架。在下面的玩具示例中,即使 DataFrame.iloc 方法也比 dictionary 慢100倍以上。
问题是: 这里的教训仅仅是字典是查找价值的更好方法吗?是的,我知道这正是它们的用途。但是我只是想知道是否有一些关于 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))
Value = dictionary [5][5]
0.130625009537
Value = df.loc [5,5]
19.4681699276
Value = df.iloc [5,5]
17.2575249672