我在使用pandas DataFrame时注意到的最奇怪的事情之一。在相同代码的第1次和第2次运行之间创建DataFrame的时间大大减少。
L = list('ABCDEFGH')*20000
min_length = 10000
data_dict = {k: np.random.randint(10, size=min_length) for k in L}
start = time.time()
df = pd.DataFrame({k:v[:min_length] for k,v in data_dict.items()})
print('loop time : ', time.time() - start)
第一次运行的时间
loop time : 0.05926999
当我重新运行上面的代码时
loop time : 0.00090622
任何机构都可以解释刚刚发生了什么吗?
pandas或python缓存结果了吗?
如果你在ipython中计时会得到像this
答案 0 :(得分:0)
我的观点是,它可能是第一次运行的问题,花时间转换为运行时的.pyc文件。我真的不是专家,这真的不是一个答案,而是更多的故障排除步骤。
尝试运行它,看看第一次迭代是否比后续迭代长得多。
L = list('ABCDEFGH')*20000
min_length = 10000
data_dict = {k: np.random.randint(10, size=min_length) for k in L}
for i in range(10):
start = time.time()
df = pd.DataFrame({k:v[:min_length] for k,v in data_dict.items()})
print('loop time : ', time.time() - start)