寫(xiě)在前面新的一周,,各位辛苦了,,那就繼續(xù)辛苦三天吧!先前系列的文章中,,小編和大家初步講解了一些怎么使用Python中的相關(guān)庫(kù)去繪制各種商務(wù)圖表,,這絕對(duì)是我們工作中相當(dāng)重要的一個(gè)環(huán)節(jié)。但是,,在我們平時(shí)工作中,,除了可視化的需求之外,我們還需要返回一些整理好的Excel表格,,因此,,善良的小編怎么能忽視各位的這種潛在需求呢,,本期文章,小編就和大家探討一下怎么使用python去操作Excel表格,。對(duì)于Excel表格的操作主要包括三部分:讀入Excel表格,、處理Excel表格以及寫(xiě)入Excel表格。這三者中最重要以及最需要時(shí)間投入的就是Excel表格數(shù)據(jù)的分析與處理,,這也將是筆者寫(xiě)作的一大主題,,后續(xù)文章中會(huì)逐步進(jìn)行介紹;而對(duì)于Excel表格的讀入,,在python中也存在著一些相對(duì)比較高效與實(shí)用的方法,,這部分內(nèi)容小編會(huì)在后期通過(guò)一篇文章進(jìn)行專門講解。排除了不講的,,剩下的自然就是本期文章將要進(jìn)行介紹的了,,本期文章將和大家一起探討一下如何使用python去寫(xiě)入Excel表格。使用python寫(xiě)入Excel存在多種方法,,但是本期文章小編將主要介紹三種方法:使用pandas庫(kù),、使用xlwt庫(kù)以及使用xlsxwriter庫(kù)。所以下文主要分成三部分,,分別圍繞這三種方法,不過(guò)小編會(huì)將重點(diǎn)放在第三部分也就是xlsxwriter庫(kù)的介紹中,,在那里小編會(huì)給出一個(gè)詳細(xì)的操作示例來(lái)對(duì)這一庫(kù)進(jìn)行一個(gè)直觀性認(rèn)識(shí),,而對(duì)其余兩部分的介紹小編會(huì)盡量只給出常用操作命令,下面我們正式進(jìn)入主題,。 pandas庫(kù)與Excel表格寫(xiě)入pandas庫(kù),,相信大家都不再陌生了吧,小編已經(jīng)在多處地方進(jìn)行了介紹,,并且一再告訴大家這個(gè)庫(kù)是進(jìn)行數(shù)據(jù)分析的絕對(duì)王者,,所以在今后的數(shù)據(jù)處理與分析系列文章中我們將會(huì)再一次不斷地接觸到它。但是盡管pandas庫(kù)在進(jìn)行數(shù)據(jù)分析時(shí)相當(dāng)給力,,但是不可否認(rèn)的是pandas庫(kù)在對(duì)Excel表格文件進(jìn)行寫(xiě)入操作這一塊相對(duì)不是很優(yōu)秀,,雖然pandas可以很方便地將數(shù)據(jù)寫(xiě)入進(jìn)Excel表格,但是這種寫(xiě)入?yún)s是無(wú)法進(jìn)行Excel格式設(shè)置的寫(xiě)入,,所以在很多時(shí)候我們必須對(duì)pandas導(dǎo)出的Excel表格進(jìn)行二次修改,,以便使得表格顯得美觀可讀。需要跟隨練習(xí)的朋友請(qǐng)下載練習(xí)文件exercise(可以到小編博客下載),。
import pandas as pd 第一行代碼導(dǎo)入了pandas庫(kù),,第二行代碼讀取了練習(xí)文件exercise.xlsx,第三行我們來(lái)看一下這一數(shù)據(jù)集的大致構(gòu)成,,見(jiàn)下圖: 數(shù)據(jù)表共有10列,,后三列分別表示1-3月的銷售額,而倒數(shù)第四列的quota列表示的報(bào)價(jià)總額,。既然小編的目的是導(dǎo)出Excel表格,,所以直接的方式就是原數(shù)據(jù)原路導(dǎo)出,不過(guò)小編可不是那種無(wú)聊的人,,在導(dǎo)出之前進(jìn)行些許的操作也不枉導(dǎo)入之累了,,順便給大家介紹一個(gè)pandas庫(kù)中的超好用函數(shù) assign 。小編打算在原數(shù)據(jù)表中增加一列匯總列去加總前三個(gè)月的銷售額,,其次小編還想計(jì)算一下銷售總而占報(bào)價(jià)總額的比例,,為了達(dá)到這一目的,小編使用以下代碼,。
當(dāng)然你如果不習(xí)慣使用 assign 函數(shù)的話,,還是可以采用之前小編所講解的方法,即通過(guò)使用下面的命令:exercise['total'] = exercise['Jan']+exercise['Feb']+exercise['Mar'] 不過(guò)小編強(qiáng)烈推薦你使用
這樣便在工作目錄下創(chuàng)建了一個(gè)名為調(diào)整后練習(xí)數(shù)據(jù)的Excel文件,,至于在導(dǎo)出命令中加上 對(duì)此筆者只想說(shuō),,什麼仇什麼怨,,這種格式的數(shù)據(jù)表如果發(fā)給老總,估計(jì)你可以直接卷鋪蓋走人了,。所以說(shuō)pandas庫(kù)雖然提供了一項(xiàng)極其便利的Excel文件寫(xiě)入操作,,但是這種便利是以犧牲美觀可讀為代價(jià)的,這就是下面將要介紹的兩個(gè)庫(kù)橫空出世的原因,。 xlwt庫(kù)與Excel文件寫(xiě)入上面介紹了使用pandas庫(kù)快速讀寫(xiě)Excel文件,,可以看出使用pandas庫(kù)可以很方便快速導(dǎo)出Excel文件,但是這種便利伴隨著你每天吃魷魚(yú)的風(fēng)險(xiǎn)(雖然小編最近酷愛(ài)燒汁魷魚(yú)須,,但是真的不想被炒呀),。所以有需求就有創(chuàng)造,xlwt庫(kù)即刻誕生,,這個(gè)庫(kù)可以很方便地對(duì)Excel文件進(jìn)行格式化調(diào)整,,因此可以輸出干凈整潔美觀可讀的Excel文件,。不過(guò)這個(gè)庫(kù)的是服務(wù)于office2003及之前的Excel文檔的,雖然它也可以出來(lái)之后的文檔,,但是在這方面要稍稍遜色與后面將講到的xlsxwriter庫(kù),。所以小編這里不將對(duì)其進(jìn)行詳細(xì)講解,只對(duì)其最基本的命令進(jìn)行介紹,,對(duì)這個(gè)庫(kù)有特殊偏好的朋友可以參看其官方文檔,。 在使用這個(gè)庫(kù)之前,你必須確保你已經(jīng)安裝了這個(gè)庫(kù),,所以請(qǐng)?jiān)诿钚兄惺褂靡韵麓a進(jìn)行xlwt庫(kù)的安裝,。 pip install xlwt 小編的xlwt庫(kù)版本是1.2.0,所以在上面的命令中自然會(huì)輸出這個(gè)數(shù)字序列,,你也可以通過(guò)這條命令去檢查一下自己是否已經(jīng)正確地安裝了xlwt庫(kù)?,F(xiàn)在假設(shè)你已經(jīng)完成了安裝,那么下面就開(kāi)始使用這個(gè)庫(kù)進(jìn)行Excel文件的寫(xiě)入吧,。
這樣就在當(dāng)前目錄下創(chuàng)建了一個(gè)名為xlwt示例的Excel03文件,,可以看一下輸出效果: 需要注意的是xlwt中對(duì)于行列的編號(hào)是從0,0開(kāi)始的,這和python是一樣的,,所以還沒(méi)有習(xí)慣Python序列編號(hào)的朋友當(dāng)注意這一點(diǎn),,下面在用一個(gè)進(jìn)行格式化設(shè)置的例子來(lái)結(jié)束對(duì)于xlwt庫(kù)的介紹。 import xlwt 可以看出相對(duì)于A1單元格中的內(nèi)容,,A2單元格中內(nèi)容進(jìn)行了加黑加粗添加下劃線以及字體斜體的格式化設(shè)置,。這相對(duì)于pandas庫(kù)的輸出是不是要好看太多了,雖然中間使用的代碼可能相對(duì)較多,,但是你不要忘記代碼的存在不是為了解決一個(gè)問(wèn)題,而是為了解決同類型的一系列問(wèn)題的,,所以這點(diǎn)前期的代碼寫(xiě)作投入成本幾乎是可以忽略不計(jì)的,。 正如小編在文章開(kāi)頭所講到的那樣,對(duì)于使用python進(jìn)行Excel文件寫(xiě)入,,小編最喜歡的一個(gè)庫(kù)就是xlsxwriter了,,所以下面小編重點(diǎn)來(lái)講一下xlsxwriter庫(kù)。 xlsxwriter庫(kù)與Excel文件寫(xiě)入“千呼萬(wàn)喚始出來(lái),,xlsxwriter閃亮登場(chǎng)”,!下面小編開(kāi)始講述python中進(jìn)行Excel表格文件寫(xiě)入操作神器般的操作庫(kù)xlsxwriter(雖然這里說(shuō)重點(diǎn)講解,但是小編也不會(huì)對(duì)這個(gè)庫(kù)的各種操作細(xì)節(jié)進(jìn)行講解,,本期主要是對(duì)其最基本的命令進(jìn)行一下介紹,,同時(shí)通過(guò)一個(gè)示例說(shuō)明它的“變態(tài)”,更加詳細(xì)的介紹小編會(huì)在后續(xù)文章中使用5-7篇文章進(jìn)行逐步介紹,。),。如果一直閱讀小編文章的朋友絕對(duì)會(huì)對(duì)這個(gè)庫(kù)的名字有一個(gè)特別深刻的了解,, xlsxwriter的安裝與基本操作要使用xlsxwriter,,你必須確保你先安裝了這個(gè)庫(kù),,為了讓各位朋友都能成功地安裝這個(gè)庫(kù),小編這里提供四種安裝方式,,我相信總要一款適合你,。
第三種方式是你首先在官網(wǎng)下載xlsxwriter庫(kù)的壓縮包,然后將工作目錄改變到 pip setup.py install 第四種方式是通過(guò)github進(jìn)行安裝,,見(jiàn)下面命令:
所以小編還是建議你不要折騰了,直接使用第一種安裝方式進(jìn)行安裝吧,,只要你不是上輩子毀了全宇宙,,你就基本能夠安裝成功。既然安裝成功了,,那就讓我們稍微嘚瑟一下來(lái)適應(yīng)一下它的語(yǔ)法命令吧,。 import xlsxwriter 第一行代碼導(dǎo)入xlsxwriter庫(kù);第二行代碼創(chuàng)建一個(gè)名為xlsxwriter操作示例的工作簿,;第三行代碼在這個(gè)工作簿創(chuàng)建了一個(gè)工作表,;第四行是在新創(chuàng)建的工作表的A1單元格中輸入“Hello xlsxwriter”這個(gè)字符串;第五行用來(lái)關(guān)閉工作簿,。這就是xlsxwriter庫(kù)用來(lái)進(jìn)行Excel表格寫(xiě)入時(shí)最基本的幾條命令,,更多格式化命令以及高級(jí)命令小編會(huì)在后續(xù)文章中進(jìn)行介紹,諸公不必著急,。下面,,小編以一個(gè)格式化的例子來(lái)完成對(duì)于xlsxwriter庫(kù)以及本期文章的講解。 xlsxwriter操作Excel文件示例這里小編以文章開(kāi)頭給出的Excel數(shù)據(jù)集為例來(lái)進(jìn)行演示,,考慮到xlsxwriter庫(kù)無(wú)法讀入Excel文件(請(qǐng)一定要記住,,xlsxwriter是無(wú)法讀入Excel的),這里使用pandas配合x(chóng)lsxwriter完成對(duì)于數(shù)據(jù)集的格式化設(shè)置。直接上代碼:
相比最先開(kāi)始直接由pandas庫(kù)導(dǎo)出的Excel表格,,這個(gè)表格是不是更加美觀與可讀了。我想你發(fā)送這樣的表格給你老板應(yīng)該不至于被炒魷魚(yú)吧,。更多的設(shè)置技巧要在實(shí)踐中根據(jù)自己的創(chuàng)意一步步進(jìn)行提升,,關(guān)鍵是你的思維與創(chuàng)意!講到這里就暫時(shí)完成了xlsxwriter庫(kù)的初步探討,,更多內(nèi)容會(huì)在后續(xù)繼續(xù)更新,。 后記本文講到這里就暫告一段落了,本期文章介紹了三種用于操作Excel寫(xiě)入的相關(guān)庫(kù),,通過(guò)介紹,,小編最終將重點(diǎn)置于pandas+xlsxwriter上。本文只是對(duì)這種組合進(jìn)行了初步探討,,后續(xù)會(huì)進(jìn)一步加大對(duì)這一主題的講解,。下期文章小編準(zhǔn)備接著回到matplotlib庫(kù)上,講解這一庫(kù)的另外一種繪圖語(yǔ)法,,敬請(qǐng)期待,!再次感謝你們的支持與鼓勵(lì),你們的陪伴是小編前進(jìn)的動(dòng)力,! |
|
來(lái)自: Four兄 > 《Python筆記》