熊猫DataFrame性能

熊猫DataFrame性能,第1张

熊猫DataFrame性能

字典对于Dataframe的要求就像自行车对汽车的要求一样。您可以比骑车快10英尺,比起启动汽车,使齿轮换挡等更快速。但是,如果您需要走一英里,汽车就可以胜出。

对于某些小的目标目标,命令可能会更快。如果这就是您所需要的,那么请确定使用dict!但是,如果您需要/想要Dataframe的强大功能,那么dict是无可替代的。如果数据结构首先不能满足您的需求,那么比较速度是没有意义的。

现在,例如-更具体地讲-一个dict对于访问列是很好的,但是对访问行却不是那么方便。

import timeitsetup = '''import numpy, pandasdf = pandas.Dataframe(numpy.zeros(shape=[10, 1000]))dictionary = df.to_dict()'''# f = ['value = dictionary[5][5]', 'value = df.loc[5, 5]', 'value = df.iloc[5, 5]']f = ['value = [val[5] for col,val in dictionary.items()]', 'value = df.loc[5]', 'value = df.iloc[5]']for func in f:    print(func)    print(min(timeit.Timer(func, setup).repeat(3, 100000)))

产量

value = [val[5] for col,val in dictionary.iteritems()]25.5416321754value = df.loc[5]5.68071913719value = df.iloc[5]4.56006002426

因此,列表的dict检索行的速度比慢5倍

df.iloc
。随着列数的增加,速度不足会变得更大。(列数就像自行车比喻中的脚数。距离越长,汽车就越方便…)

这只是列表的字典不如Dataframe方便/慢的一个例子。

另一个示例是当您为各行设置了DatetimeIndex并希望选择某些日期之间的所有行时。有了Dataframe,您可以使用

df.loc['2000-1-1':'2000-3-31']

如果要使用列表字典,则没有简单的模拟方法。与Dataframe相比,您需要用于选择正确行的Python循环将再次非常慢。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存