V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
yellowtail
V2EX  ›  Python

一般来说, Python 和 excel 哪个处理数据更快?

  •  
  •   yellowtail · 2019-02-23 01:16:58 +08:00 · 18780 次点击
    这是一个创建于 1883 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Tink
        1
    Tink  
       2019-02-23 01:46:05 +08:00 via iPhone
    处理数据?啥数据?
    lithiumii
        2
    lithiumii  
       2019-02-23 01:49:14 +08:00
    看你要干什么,以及有多熟练。不过稍微大一点的数据(几百行 * 几百列),Excel 就得开一会儿了吧。真·大数据 Excel 完全做不了。
    flynaj
        3
    flynaj  
       2019-02-23 01:50:02 +08:00 via Android   ❤️ 1
    Python 快,因为它不回显
    dartabe
        4
    dartabe  
       2019-02-23 02:57:23 +08:00
    ctrl + f 算不算 hash 表? :)
    xupefei
        5
    xupefei  
       2019-02-23 04:44:41 +08:00
    @lithiumii #2 几百行几百列基本上是瞬开的。不要太小看 Excel 了…
    硬件配置足够的情况下 Excel 能可视化处理几万行的数据,如果用 PowerBI 扩展,Excel 能搞定上百万行的数据分析。微软自己就演示过用 PowerBI 可视化分析千亿行数据。
    youthfire
        6
    youthfire  
       2019-02-23 08:16:31 +08:00 via iPhone
    都用,完全取决于数量级
    luozic
        7
    luozic  
       2019-02-23 08:25:31 +08:00 via iPhone
    python 的方案软件便宜,库多,可以挂到 spark numpy 等上面玩,excel 主要是可视化编辑和操作 傻瓜点,不过现在 python 也有 jypter 了。有代码经验上 python,没有的出钱上 powerBI+Excel
    congeec
        8
    congeec  
       2019-02-23 08:38:50 +08:00
    什么酸快?人的时间还是机器的时间?
    Les1ie
        9
    Les1ie  
       2019-02-23 09:29:17 +08:00
    看数据量吧, 以前用 pandas 导出来的几万行的 xls, excel 处理起来有点费力, 但是 pandas 处理起来感觉还挺流畅的。
    不过还是要看具体的需求,遇到过好几次了,需要花点时间才能写出来的脚本,excel 里面点点点两分钟就搞定。Excel 很多功能是提前写好了的,只需要点点点就行,另外要给透视表要给透视表一个好评,用起来太方便了 :)
    lhx2008
        10
    lhx2008  
       2019-02-23 09:43:38 +08:00 via Android
    excel 计算可以利用多核资源的,一点都不慢,只是数据量有上限
    Nasei
        11
    Nasei  
       2019-02-23 09:54:42 +08:00
    @lithiumii
    我见过组里的汽车网络工程师用 excel 收集汽车路试过程中的数据, 几个小时下来一堆 excel, 一个 excel 好几百兆, 然后打开套模板出好几个数据统计图表, 就普通的台式机上, 处理起来一点不慢
    loading
        12
    loading  
       2019-02-23 09:59:22 +08:00
    不说场景其实没啥好对比的,excel 能调用 vba 然后调其他语言,python 就更不用说了。
    kiwi95
        13
    kiwi95  
       2019-02-23 10:14:41 +08:00 via Android
    比速度,Python 基本都是输
    yanchao7511461
        14
    yanchao7511461  
       2019-02-23 10:28:45 +08:00
    这比较的让我匪夷所思
    ipwx
        15
    ipwx  
       2019-02-23 10:49:18 +08:00
    @kiwi95 NumPy / Pandas 用 C 写的,只要你不写 Python 循环而是用这些库的向量运算,都很快。
    hakono
        16
    hakono  
       2019-02-23 11:13:11 +08:00 via Android   ❤️ 3
    搞不懂处理数据方面你们为什么一定要把 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 接口库,调用起来非常方便
    可以看看介绍了解下
    yellowtail
        17
    yellowtail  
    OP
       2019-02-23 11:44:43 +08:00
    @hakono 只是好奇,假如我问 C 语言和 python 哪个快估计没人说看情况了,就直接说 C。 因为国内很多机构用 excel 来计算期权价值,算是 python 的对手盘,所以想知道大概怎么回事
    hakono
        18
    hakono  
       2019-02-23 12:56:08 +08:00
    @yellowtail 主要是不明确范围的讨论下没人能简单下结论。比如限定好范围: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 负责展现,就是这样……
    shange123
        19
    shange123  
       2019-02-23 16:47:08 +08:00
    肯定 python 啊,现在数据分析,数据处理都用 python
    Torpedo
        20
    Torpedo  
       2019-02-23 16:48:43 +08:00 via Android
    看你熟悉哪个
    zea
        21
    zea  
       2019-02-23 18:12:34 +08:00 via Android
    为嘛不用 matlab/octave
    Ginson
        22
    Ginson  
       2019-02-23 18:21:59 +08:00
    Excel 处理几十万级的 vlookup 就慢得不行了,所以我专门整了个 Python 脚本来处理类 vlookup 问题
    youthfire
        23
    youthfire  
       2019-02-23 20:03:10 +08:00
    @Ginson vlookup 不仅是慢,而且是功能有限,考虑到扩展性和速度性我也是用 pandas 取代了
    anguiao
        24
    anguiao  
       2019-02-23 20:08:35 +08:00
    我记得微软以前好像说过打算在 Excel 里面添加 Python,不知道后来为什么鸽了。
    JCZ2MkKb5S8ZX9pq
        25
    JCZ2MkKb5S8ZX9pq  
       2019-02-23 21:06:50 +08:00
    小东西用 excel 比较便利,可以利用 excel 作为数据输入的 GUI。
    给客户演示及导出,大多数情况下也是 excel 比较便利。
    但如果复杂查询,关联,Excel 里数组公式套多一点,明显就不大行了,还是要上数据库。
    Excel 有概率崩,py/pandas/数据库更稳妥点。
    snw
        26
    snw  
       2019-02-24 13:55:10 +08:00
    @anguiao
    往 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
    snw
        27
    snw  
       2019-02-24 14:05:19 +08:00
    @lithiumii
    对于没有格式的数据,Excel 半分钟足够打开十几万行×二三十列的数据。
    Excel 慢的最主要原因是单元格格式太多,其他原因比如使用旧格式(.xlsx 和.xlsb 格式体积和读写速度都比.xls 好得多),用了太多插件,VBA 大量操作单元格时没暂停刷新,咖喱味的代码等等。
    hunter2015
        28
    hunter2015  
       2019-02-24 15:42:19 +08:00
    当然是 excel 了,这还用问
    xpresslink
        29
    xpresslink  
       2019-02-25 12:58:26 +08:00
    楼主详细定义一下“处理”二字的内涵和外延不然真心没法回答。
    yellowtail
        30
    yellowtail  
    OP
       2019-02-26 14:52:12 +08:00
    @xpresslink 就是最简单的处理吧,计算关系得到结果
    xpresslink
        31
    xpresslink  
       2019-02-26 18:16:07 +08:00
    @yellowtail 你说的等于没说。
    其实这两个东西没有什么可比性,就跟比较跑车和高铁拉客哪个更好一样。
    EXCEL 的强大在于可视化的操纵小量数据做简单处理的便捷性。几十万条以上数据基本上就没有可用性了。
    python 的强大在于撸个尝试性的代码可用的库多简洁省事儿,再复杂的逻辑再大的数据量也不是问题。
    yellowtail
        32
    yellowtail  
    OP
       2019-02-26 18:27:23 +08:00
    @xpresslink 哎 我说的就是计算。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1000 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:34 · PVG 03:34 · LAX 12:34 · JFK 15:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.