Python 和 Excel 哪个处理数据更快?

null
Python 和 Excel 哪个处理数据更快?

33 回复

处理数据?啥数据?


这问题得看具体场景。Python和Excel根本是两种东西,直接比“速度”没意义。

Excel 适合中小规模、交互式的数据操作。你点几下鼠标就能排序筛选,做透视表,画个图。处理几万行数据,在表格里修修改改,Excel非常直观高效。但数据量大了(比如几十万行以上),或者需要复杂、重复的逻辑,Excel就会卡顿,而且容易出错。

Python (用pandas这类库) 是编程,适合处理大规模数据、复杂转换和自动化流程。它一次能轻松处理百万、千万行数据,能写循环、条件判断,能连接数据库、调用各种算法库。但你需要写代码,前期学习成本高,不适合快速看一眼数据。

简单说:快速查看和手动处理少量数据用Excel;处理大量数据、复杂逻辑或需要自动化时用Python。

总结:按数据量和任务复杂度来选工具。

看你要干什么,以及有多熟练。不过稍微大一点的数据(几百行 * 几百列),Excel 就得开一会儿了吧。真·大数据 Excel 完全做不了。

Python 快,因为它不回显

ctrl + f 算不算 hash 表? :)

#2 几百行几百列基本上是瞬开的。不要太小看 Excel 了…
硬件配置足够的情况下 Excel 能可视化处理几万行的数据,如果用 PowerBI 扩展,Excel 能搞定上百万行的数据分析。微软自己就演示过用 PowerBI 可视化分析千亿行数据。

都用,完全取决于数量级

python 的方案软件便宜,库多,可以挂到 spark numpy 等上面玩,excel 主要是可视化编辑和操作 傻瓜点,不过现在 python 也有 jypter 了。有代码经验上 python,没有的出钱上 powerBI+Excel

什么酸快?人的时间还是机器的时间?

看数据量吧, 以前用 pandas 导出来的几万行的 xls, excel 处理起来有点费力, 但是 pandas 处理起来感觉还挺流畅的。
不过还是要看具体的需求,遇到过好几次了,需要花点时间才能写出来的脚本,excel 里面点点点两分钟就搞定。Excel 很多功能是提前写好了的,只需要点点点就行,另外要给透视表要给透视表一个好评,用起来太方便了 :)

excel 计算可以利用多核资源的,一点都不慢,只是数据量有上限


我见过组里的汽车网络工程师用 excel 收集汽车路试过程中的数据, 几个小时下来一堆 excel, 一个 excel 好几百兆, 然后打开套模板出好几个数据统计图表, 就普通的台式机上, 处理起来一点不慢

不说场景其实没啥好对比的,excel 能调用 vba 然后调其他语言,python 就更不用说了。

比速度,Python 基本都是输

这比较的让我匪夷所思

NumPy / Pandas 用 C 写的,只要你不写 Python 循环而是用这些库的向量运算,都很快。

搞不懂处理数据方面你们为什么一定要把 excel 和 python 彻底对立起来比较呢?
excel 的可视化展现和操作是 Python 根本比不了的
而 python 利用 numpy 等库做数据操作的便利性也是 excel 没法简单提供的( vba 那玩意太操蛋了)

所以其实结论很简单,只需要将 excel 和 Python 结合起来就行了。方法是通过 excel 的 com 接口,python 调用 excel 接口直接读取操作 excel 上的数据进行计算,然后再用 excel 做数据展现( excel 内置的 vba 就是通过调用 excel 但 com 接口完成各种功能的)相当于 excel 只是个 gui 了(这方法可不是 python 读写 xlsx 文件那种低效率套路)

https://www.xlwings.org
这个库是有人封装好的 com 接口库,调用起来非常方便
可以看看介绍了解下

只是好奇,假如我问 C 语言和 python 哪个快估计没人说看情况了,就直接说 C。 因为国内很多机构用 excel 来计算期权价值,算是 python 的对手盘,所以想知道大概怎么回事

主要是不明确范围的讨论下没人能简单下结论。比如限定好范围:c 语言和 python 哪个“快”(一般都理解成执行速度的快,而不是开发速度的快),那很轻松就能得到结论是 c
而单纯抛出个 excel 和 python 数据处理的话,就没那么简单了。因为你提数据处理,不光光是只有计算,数据读取,数据测试,可视化等等。每个方面 excel 和 python 都有不同的用处。比如用数据做不复杂的图表的话我当然选择 excel 而不是 matplotlib。我想轻松展现计算的数据,python 虽然可月 print 或者用 pandas 但依旧没有 excel 这样直接展现出来直观。

所以我提到的 xlwings 是个很好的库
打开 excel 和 python,直接一句 xw.Range(“A1:A10”).value 就能读取操作 excel 界面上的数据。
而且这个库还能在 excel 里嵌入 python

python 专职数据计算,excel 负责展现,就是这样……

肯定 python 啊,现在数据分析,数据处理都用 python

看你熟悉哪个

为嘛不用 matlab/octave

Excel 处理几十万级的 vlookup 就慢得不行了,所以我专门整了个 Python 脚本来处理类 vlookup 问题

vlookup 不仅是慢,而且是功能有限,考虑到扩展性和速度性我也是用 pandas 取代了

我记得微软以前好像说过打算在 Excel 里面添加 Python,不知道后来为什么鸽了。

小东西用 excel 比较便利,可以利用 excel 作为数据输入的 GUI。
给客户演示及导出,大多数情况下也是 excel 比较便利。
但如果复杂查询,关联,Excel 里数组公式套多一点,明显就不大行了,还是要上数据库。
Excel 有概率崩,py/pandas/数据库更稳妥点。


往 Excel 里添加 Python 只是用户提的愿望,然而微软已经大笔投资了 javascript/typescript,所以估计官方不会提供 Python 支持。

MS Office 已经提供了 javascript api
https://docs.microsoft.com/en-us/office/dev/add-ins/reference/javascript-api-for-office

预览版已经支持 javascript 自定义公式和插件(虽然第一时间就被用于挖矿了 233 )
https://docs.microsoft.com/en-us/office/dev/add-ins/excel/custom-functions-overview


对于没有格式的数据,Excel 半分钟足够打开十几万行×二三十列的数据。
Excel 慢的最主要原因是单元格格式太多,其他原因比如使用旧格式(.xlsx 和.xlsb 格式体积和读写速度都比.xls 好得多),用了太多插件,VBA 大量操作单元格时没暂停刷新,咖喱味的代码等等。

当然是 excel 了,这还用问

楼主详细定义一下“处理”二字的内涵和外延不然真心没法回答。

就是最简单的处理吧,计算关系得到结果

你说的等于没说。
其实这两个东西没有什么可比性,就跟比较跑车和高铁拉客哪个更好一样。
EXCEL 的强大在于可视化的操纵小量数据做简单处理的便捷性。几十万条以上数据基本上就没有可用性了。
python 的强大在于撸个尝试性的代码可用的库多简洁省事儿,再复杂的逻辑再大的数据量也不是问题。

哎 我说的就是计算。

回到顶部