70万数据汇总效率极限测试!JSA+Pandas!



Lv.2潜力创作者
最好总是遇到公式的数据量级比较大的情况,普通的公式已经难以胜任了,还要考虑兼容性,所以考虑使用WPS的JSA实现,前面我大体聊过,不过WPS也支持Python,今天我们就来一起测试一下效率!
▍数据情况
本次我用的是智能表格,主要是因为要测试一下其中的Python处理效率!
模拟了70万行2列的数据,简单测试一下分组汇总并写入效率如何!
下面我们开始测试
▍JSA普通对象法
我们使用对象字面量{}来模拟字典,按Key-Value对应汇总,基本跟VBA中的字典类似,只是JS对象模拟,70万,跑了几次,基本在1.5秒左右!~
下面我们使用内容的数据透视表来测试一下!
▍内置的数据透视表
使用JSA操作数据透视表来汇总,刷新也方便一些,基本用时在0.8秒左右,具体看下图中的多次执行结果!
内置的数据透视表效率更高一些!可能内部使用的C++实现的!
▍reduce+Map
利用数组的reduce累加,写法比较简洁,结果我们也可以使用ES6的结构!用时平均1.35秒左右!
使用for…of… 还要稍微高一些!
▍Python-Pandas效率
先说Python内置方法,70万在云端运行失败了!
7万行也测试失败了,最后测试了7000行,基本3秒左右速度也还可以,估计是运行执行的问题,量大了还是跑不起来!
然后我们尝试本次Pandas执行,由于读取xlsx文件速度超级慢,基本70万行数据Pandas读取基本要10秒+,于是转成了CSV文件,效率立马上来了,整体只要0.2秒左右,效率UP!
但是还是要考虑普通办公常见的兼容性问题,还是选择reduce+Map,为什么不选择透视表呢?其实案例演示只是说明简单的效率问题,实际需求比较复杂,各种转换处理,非透视表可以搞定,再加上效率和兼容性综合考虑!reduce+Map或许是目前最佳的选择!
今天的内容就到这里,更多办公自动化实战案例,欢迎关注小编!
Lv.2潜力创作者