怎麼用python做excel裡的數據清洗?

1 個回答
卡门的儿子
2019-06-08

本質上在python中對excel的數據進行清洗,與普通的數據清洗流程是一樣的。區別在於怎麼讀寫excel的數據,至於清洗的過程其實與excel是沒關係的。


而目前python生態中可以讀寫excel的庫看似很多,但他們各有優缺點。以下是我的一些經驗:

  1. xlrd、xlwt、xlutils。他們是獨立的3個包,讀取用xlrd,寫入用xlwt,綜合用xlutils,很奇葩吧。注意他們只能處理excel2010以前的文件格式,就是xls後綴的文件。

  2. openpyxl。他可以讀寫excel2010或以上版本的文件,就是xlsx後綴的文件。

  3. xlwings。可以通殺所有excel版本的文件。

當然,python上還有其他的包,不過我沒有使用過,這裡就不列出


要注意是否依賴excel

不管使用什麼語言,通常與excel做交互有兩種方式,1是直接讀寫文件,2是通過操作excel進行讀寫。

上面說的點1,2都是直接讀寫文件,意味著你本機是無需安裝excel。xlwings是需要安裝excel。

直接讀寫excel文件,資源消耗會比較少。相反地直接操作excel應用會消耗比較大的系統資源,畢竟他需要啟動excel。


是否容易使用

其實上述的所有的包相對來說都比較容易使用,前提是你已經熟悉excel的對象模型,例如工作簿,工作表,單元格這些概念,上述的包都有與之對應的類,因此使用上不會有太大難度。

進一步分析,xlwings是最貼近原生的excel對象模型,應該xlwings底層是基於com,因此有時候你不知道怎麼操作時,完全可以通過excel的錄製宏的方式,參考生成的vba代碼就可以移植到xlwings上使用。


怎麼做清洗?

當你通過上述的庫讀取了excel數據後,那麼你的清洗選擇就非常多,比如用pandas進行清洗,清洗結果還可以導回excel。由於清洗過程與excel沒有什麼關係,這裡就不再展開。


總的來說,你需要根據你的環境需求,在上述的包中選擇一個適合的,需要考慮的就是是否允許安裝excel,是否需要同時處理不同的excel讀寫任務。


想了解更多python的細節,可以關注我頭條號,我已經發布了許多相關的文章,總有一篇適合你。私信我"python",可以獲得按水平領域歸檔的資料。

相關推薦

推薦中...