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

E精精
E精精 WPS资深用户KVPWPS函数专家Lv.2 潜力创作者

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或许是目前最佳的选择!

今天的内容就到这里,更多办公自动化实战案例,欢迎关注小编!

你用过WPS的Python功能吗
完全不知道~
10 (50%)
知道,用过
4 (50%)
14人参与 截止时间:2026/08/31 01:18:33
江苏省
浏览 327
收藏
9
分享
9 +1
2
+1
全部评论 2
 
fanwei
一会是JSA,一会是airscript,一会是内置python,一会是本地独立python,毫无对比性可言
· 安徽省
1
回复
 
赵二
赵二 Lv.2 潜力创作者WPS产品体验官

Lv.2潜力创作者

完全不知道
·
3
回复