知乎上有个热门提问,日常工作中Python+Pandas是否能代替Excel+VBA?
我的建议是,两者是互补关系,不存在谁替代谁。
复杂数据分析挖掘用Python+Pandas,日常简单数据处理用Excel+VBA。
从数据处理分析能力来看,Python+Pandas肯定是能取代Excel+VBA的,而且要远远比后者强大。
但从便利性、传播性、市场认可度来看,Excel+VBA在职场工作上还是无法取代的。
因为Excel符合绝大多数人的使用习惯,使用成本更低。
就像Photoshop能修出更专业的照片,为什么大部分人在用美图秀秀?道理是一样的。
从市场接受度来看,Python对比Excel有三个差异点。
注意我这里说的是差异点,不是劣势,因为不同品种的东西,没办法进行优劣比较。
1、Python学习门槛相对较高
虽然Python在编程语言里算最容易入门的,但是它仍然是一门编程语言,需要你理解变量、函数、逻辑语句、类、线程进程等编程知识,对于大部分非IT专业的人来说,学习门槛是相当高的。
而且学习Python数据分析不光是学习Python语法本身,你还要学习Pandas、Numpy、Matplotlib、SKlearn等各种数据科学库,因为大部分数据处理函数都包装在这些库里。
很多库学习的难度不比Python本身容易,因为这些大库的生态很复杂。比如Pandas,它的函数方法起码得有成千上万个,还有不胜其数的参数和逻辑,就像是你在手撸Excel底层代码去做数据分析。
所以Python擅长处理复杂度高、重复性高、数据量大的场景
Excel呢?几乎大部分懂点电脑的人可以零门槛去使用,或者说简单看些教程,就可以使用函数、透视表进行数据处理,入门学习成本极低。
当然,高阶操作和VBA也是需要花时间去研究的。
2、Python使用成本相对较高
前面说过Python不像Excel这种图形界面软件,拿来即用,不会出现什么幺蛾子。
Python用起来相比Excel麻烦点,有可能你跑成功的代码换到同事电脑就会出现bug,因为Python涉及环境配置、依赖关系,且语法格式比较严格,稍有不对就会报错。
所以很多Python的学习者会止步在安装配置、bug处理上,还没进行数据分析就放弃了。
对于Excel,可能就不会存在这些问题,或者很少。
公司里上到董事长、CEO,下到基层员工,几乎都在用Excel。你用Excel做出来的东西,可以毫无沟通障碍的同步给领导同事,哪怕是用到VBA等复杂功能,也可以轻松解释。
当然这里不涉及复杂的开发的场景,只是日常办公的数据处理和协作,Excel比Python更实用。
如果是跑算法、写自动化工具,肯定Python相对合适。
3、Excel在某些应用场景已经通用化,产生路径依赖
多数人对Excel产生了路径依赖。Excel面世几十年,在各行各业都有深层次的应用,积累了大量代码、公式、流程、素材等,很难在一朝一夕去找到替代品。
Excel是世界上最成功的软件之一,微软每年用养成本上千的工程师去开发维护Excel,把Excel封装成日常办公最方便的数据工具。其实微软考虑的是满足95%的人需求即可,剩下5%的人可以尽情地去用Java、Python等工具。
所以不是说功能越强,我们越应该用什么,而且考虑到现有的规则、经验、行情,做出最有解选择。
小结
综上,大部分人使用Excel,而不是Python进行数据分析,是很正常的事。
因为简单而有效的东西往往是最受欢迎的,Python其实也一直在往这个方向努力,相信它的明天会无比美好。