熊猫加入记忆效率高吗?

时间:2017-02-15 04:37:48

标签: pandas

我正在进行计算,创建一个Pandas系列,并join使用Dataframe,数千次。结果是一个巨大的Dataframe,这就是我想要的。

这种内存是否有效,而不是我不知道的其他方式?我担心的是,当使用join时,它会在内存中创建一个新的Dataframe,旧的副本仍然存在。是这样的吗?还有其他需要注意的问题吗?

1 个答案:

答案 0 :(得分:0)

根据我的经验,它比首先生成字典然后将其变成数据帧要慢。

%%time
all_list = {}
for i in range(1000):
    all_list[i] = range(1000)
df = pd.DataFrame(all_list)

待机时间:186毫秒

import psutil
mem = psutil.virtual_memory()
mem

svmem(总计= 17056518144L,可用= 10201149440L,百分比= 40.2,使用= 6855368704L,免费= 10201149440L)

然后,如果我关闭并关闭上一个python笔记本,并开始一个新的。

%%time
df = pd.DataFrame({1:range(1000)})
for i in range(2,1000):
    df = df.join(pd.DataFrame({i:range(1000)}))

壁垒时间:19.5秒

import psutil
mem = psutil.virtual_memory()
mem

svmem(总计= 17056518144L,可用= 10402709504L,百分比= 39.0,使用= 6653808640L,免费= 10402709504L)

对于记忆,它更小。

所以我可以得出结论

  • 时间成本:更多,
  • 内存成本:减去。
相关问题