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