有人在知乎上提問:為什么大公司不用pandas取代excel?
而且列出了幾個理由:Pandas功能比Excel強大,運行速度更快,Excel除了簡單和可視化界面外,沒有其他更多的優勢。
有個可怕的現實是,對比Excel,光是運行成功print(‘hello world’)已經勸退95%的人了。
Excel的核心優勢就是操作方便,哪個Top級產品不是把用戶路徑優化到極致的,某種意義上來說Python也是編程語言里的Excel、WeChat。
何況Pandas和Excel不存在競爭關系,反而是合作關系。
Pandas是基于Python的數據處理編程語言,能支持Excel格式文件的導入導出,Excel是商業圖形化表格軟件,使用場景不一樣,用戶對象不一樣。
Excel的最大的特點在于操作足夠簡單、功能足夠實用、傳播足夠便捷,這是任何其他同類工具替代不了的,很難想象你不用xlsx,而是發個py文件給老板。
所以Pandas的優勢對于Excel用戶來說形同虛設,你總不能要求財務的人放棄Excel,哼哧哼哧的用Pandas整理賬單報表。
問題里提到幾點pandas可以替代的Excel的理由,但其實都站不住腳。
1、Pandas功能遠比Excel多?
這絕對是Excel小白用戶的錯覺。
現實情況是Pandas能做的事,Excel都可以做,Pandas不能做的事,Excel也可以做。
大眾常用的Excel功能占不到全部功能的5%,多數情況下你無非是拿Excel來存儲數據、制作表格、可視化圖表,稍復雜一點可能會用到透視表、vlookup等,但這些只是Excel的開胃小菜。
Excel的Power Query是數據清洗處理的神器,可以做各種數據的合并、組合、透視等操作,對比pandas絲毫不含糊。
Excel中的??Power Pivot是大數據處理和建模神器,支持千萬級數據的快速處理,以及各種模型搭建,還有DAX函數應用。
Excel的VBA和宏是自動化數據處理神器,不光能編寫自動化動作,還能結合各種API實現商業級系統的數據對接和產品開發,什么BI報表、財務系統、量化系統、訂單系統等,都可以開發。
這里不一一例舉,可能咨詢公司和金融領域的人對Excel的功能之強大感受更明顯。
其實對于大眾來說,Excel里5%的常用功能已經能滿足日常工作95%的需求了,這是事實,所以Excel的流行不是它功能多,而是產品設計真的符合用戶需求。
Pandas的功能強大不在于比Excel數據處理能力強,而是能力邊界更廣,整個Python生態都可以為它所用,能結合sklearn、matplotlib、numpy、tensorflow等各種框架,處理多樣化復雜任務、跨領域任務、重復性任務等數據問題。
2、Excel運行速度遠不是Pandas對手?
這個確實這樣,在處理數據清洗、數據建模、大數據時,Excel運行速度比Pandas慢,因為Excel是圖形化軟件,依賴電腦性能,且多數情況下需要手工點點點操作,而Pandas直接跑Python代碼,而且有并行優化機制,能快速處理數據。
但是,使用Excel的人對速度其實要求很低,日常拉個銷售日報、透視下產品利潤、繪制個走勢圖,幾分鐘能做的事,何必寫pandas來處理。
真正需要Pandas處理是重復性高、數據量大、過程復雜的任務,比如量化策略,要實時處理幾百萬行日線數據,這就要用到pandas,寫個腳本,放在服務器上跑。
再比如算法開發,需要不斷更改數據、調試模型,Pandas就很適合這樣的任務,只需要更新一些代碼,便可以重跑整個過程。
3、Pandas除了不能搞出Excel這么多種顏色,字體,格式,別的真沒什么了?
Excel本身就是可視化的表格軟件,格式和可視化的多元化也是其產品特點,做好表截個圖就能發給領導交差,多么方便的事。
Pandas本身就不是干可視化表格的事,它是數據處理語言,其在notebook渲染的表格樣式,也是方便對數據做處理,而是用于可視化展示。
Excel和Pandas其實各有所長,誰也替代不了誰,對用戶來說,應該根據需求來選擇工具,讓工具更好的服務自己。