處理大型Excel文件,用Python就對了!
- 2019 年 11 月 23 日
- 筆記
打開幾M的Excel文件,電腦卡的真是要吐血······
網上說現在的各行業都要Python,即提高了工作效率,又能裝B
。也因此,網上也出現了一堆一堆的Python培訓。但是,平時經常用Excel的你會問?到底Python有啥用, 能幫助我提高哪些效率。來,今天我們舉個例子告訴你!
首先。我們要處理的Excel文件包含近100萬行和16列:

Python提供了read excel()來讀取Excel文件作為DataFrame:
import pandas as pd import numpy as np df = pd.read_excel(...\Excel-Tutorial.xlsx')

這一步很簡單,沒毛病!
正如你所看到的,到目前為止,數據看起來是OK的,但我們的列標題是錯誤的。接下來,讓定義一個標題行:
df = pd.read_excel('…\Excel-Tutorial.xlsx', header=[1]).reset_index()

參數header=[1]指定使用Excel中的第二行作為標題。
數據OK了,下面要做一些分析啦。這時,你可能會用到Pandas庫。
加入你是做市場營銷的,你希望知道公司每年在不同國家的銷售額是多少。

一行代碼搞定,用了86毫秒。操作越複雜,速度優勢越明顯!
如過讓你用Excel,你會做多久?
另一個需求可能是銷售部門需要按年份和類別求出每個國家的數據。那麼,我們須將計算結果保存在不同的工作表中:

下一步,我們將數據再次保存為Excel,以便將其提供給銷售和市場部門。我們將創建一個 pd.ExcelWriter對象並創建不同的表格:

很簡單,不是嗎?讓我們來看看新創建的工作簿:

正如您所看到的,DataFrame被正確地保存到指定的工作表中。在我們向兩個部門都發送了郵件後,第二天我們又收到了一封郵件:他們要求進行一些流程化和可視化。因為每個月都要使用這類數據,所以我們決定用Python來執行這些任務與操作。
我們須再創建一個writer對象:

代碼的第一部分與第一個示例相同。我們創建了一個writer對象。xlsxwriter使我們能夠訪問Excel的圖表和格式等。我們需要獲得 workbook 對象 workbook=wrier.book 和 worksheet 對象 worksheet=wrier.sheet [『 Sales sums']。在本例中,我們將對第一個工作表執行修改。我們添加一個圖表,指定數據的範圍(= sales_sum !$B$2:$B$7』),並將其添加到工作表的A9單元格中。

可複製、可修改、效率高!
還有很多很6的操作,後續我們將為大家逐一講解。