日常工作中,Python+Pandas是否能代替Excel+VBA?
知乎上有個熱門提問,日常工作中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其實也一直在往這個方向努力,相信它的明天會無比美好。