處理大型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的操作,後續我們將為大家逐一講解。