pandas 用styleframe 設(shè)置? DataFrame表樣式

我們知道Excel功能很強(qiáng)大,Python與Excel交互也有很多現(xiàn)成的模塊可以用,主要有xlrd、xlwt、openpyxl、xlsxwriter這四種可以用,這些模塊可以很好地通過Python實(shí)現(xiàn)Excel的功能,但是這些模塊有一個(gè)不太方便的地方就是針對(duì)每一個(gè)單元格的行列位置去操作的,每次使用都很麻煩,不像DataFrame那樣可以針對(duì)行列去進(jìn)行操作。

1.前言

DataFrame雖然操作便利,但是DataFrame又有個(gè)不如意的地方就是不能針對(duì)表去進(jìn)行設(shè)置格式(字體顏色、大小之類的),所以有的時(shí)候?yàn)榱丝梢栽O(shè)置表的格式還是需要用那幾個(gè)比較麻煩的 Excel模塊。直到我遇到了StyleFrame模塊,這個(gè)模塊是把Pandas和openpyxl進(jìn)行了結(jié)合,讓你既可以享受DataFrame的操作便利,又可以輕松利用openpyxl進(jìn)行表格樣式設(shè)置。

接下來我們就看一看如何針對(duì)DataFrame表進(jìn)行樣式設(shè)置。要看怎么設(shè)置,我們得先看看可以設(shè)置什么。延續(xù)『對(duì)比Excel』特點(diǎn),我們還是同樣看看Excel中有哪些格式可以設(shè)置。

Excel中我們平常設(shè)置的主要有字體(類型、顏色、邊框線、背景色、下劃線、大小、加粗)、對(duì)齊方式(水平方向、垂直方向)、數(shù)字(數(shù)據(jù)顯示格式,百分?jǐn)?shù)、小數(shù)點(diǎn)位數(shù)、時(shí)間格式等設(shè)置)、條件格式四個(gè)部分。

2.準(zhǔn)備工作

因?yàn)镾tyleFrame這個(gè)模塊不是Anaconda自帶的,所以需要我們手動(dòng)進(jìn)行安裝。直接進(jìn)行如下命令即可進(jìn)行安裝:

你也可以選擇其他安裝方式,關(guān)于包的安裝方式可以看這篇:講幾種Python包的安裝方式

如果你是python3.7,那么你直接運(yùn)行上述命令可能會(huì)報(bào)錯(cuò),因?yàn)閜ip默認(rèn)安裝的是該模塊的最新版本(目前最新是2.0.2),但是最新版本可能不太兼容,這個(gè)時(shí)候你可以安裝1.6.2版本(2.0版本嘗試了也安裝失敗)的,我就是用的1.6.2版本安裝成功的。安裝命令如下:

安裝好以后,我們需要新建一個(gè)StyleFrame供接下來使用,新建StyleFrame使用的方法與新建DataFrame用的一樣。

需要注意的是這里的sf不同于DataFrame表的df,是不可以預(yù)覽的。

3.設(shè)置樣式對(duì)象

我們主要通過對(duì)下面的Styler進(jìn)行樣式設(shè)置。

以下為Styler對(duì)象的參數(shù)說明:

4.使用樣式

設(shè)置完樣式以后,我們就需要來指定在哪一行或哪一列上使用這個(gè)樣式。

4.1在列上使用

在某一列上使用樣式時(shí)需要用到如下方法:

參數(shù)說明如下:

4.2在行上使用

我們除了在某一列上設(shè)置樣式外,我們有的時(shí)候要需要針對(duì)某些行進(jìn)行樣式設(shè)置,用到的方法如下:

參數(shù)說明如下:

5.字體設(shè)置

這一篇我們主要講講字體相關(guān)的設(shè)置,其他設(shè)置留在下一篇再講。

5.1字體類型

第一個(gè)是關(guān)于字體類型的設(shè)置,也就是什么字體,關(guān)于字體類型設(shè)置使用的是font參數(shù),主要有如下幾種參數(shù)值(字體)可選:

字體類型中用的最多的就是arial,即微軟雅黑。當(dāng)我們把字體樣式設(shè)置成Arial樣式,實(shí)現(xiàn)代碼如下:

我們用Excel打開設(shè)置樣式后的文件,在字體類型那一欄就會(huì)顯示Arial:

5.2顏色

第二個(gè)是關(guān)于字體顏色的設(shè)置,關(guān)于字體顏色設(shè)置使用的是font_color參數(shù),主要有如下幾種參數(shù)值(顏色)可選:

我們把col_1列的字體設(shè)置成綠色,col_2列字體設(shè)置成紅色,實(shí)現(xiàn)代碼如下:

最后效果如下:

5.3邊框線

第三個(gè)是關(guān)于單元格邊框線設(shè)置的,關(guān)于邊框線的設(shè)置使用的border_type參數(shù),主要有如下幾種參數(shù)值(邊框線類型)可選:

這里的邊框線其實(shí)也是一種線,那既然是線的設(shè)置,就和我們之前學(xué)過的折線圖里面線的設(shè)置大同小異了,大家可以根據(jù)自己的需求選擇合適的線形。

我們把邊框線設(shè)置成點(diǎn)劃線,實(shí)現(xiàn)代碼如下:

最后效果如下:

5.4背景色

第四個(gè)是關(guān)于背景色的設(shè)計(jì),即單元格填充顏色,關(guān)于單元格背景顏色使用的是bg_color參數(shù),單元格背景的可選顏色和字體顏色一致,這里不再贅述。

我們把col_1列的單元格背景設(shè)置成綠色,col_2列單元格背景設(shè)置成紅色,實(shí)現(xiàn)代碼如下:

最后效果如下:

5.5下劃線

第五個(gè)是關(guān)于下劃線設(shè)置,給字加下劃線,關(guān)于下劃線的設(shè)置使用的是underline參數(shù),主要有如下幾種參數(shù)值(下劃線類型)可選:

我們把整表全部加單下劃線,實(shí)現(xiàn)代碼如下:

最后效果如下:

5.6字體大小

第六是字體大小的設(shè)置,字體大小的設(shè)置就比較簡(jiǎn)單了,直接給參數(shù)font_size指明一個(gè)具體數(shù)字就行。如下,我們將第一列設(shè)置成20號(hào)字體,將第二列設(shè)置成12號(hào)字體。實(shí)現(xiàn)代碼如下:

最后效果如下:

5.7字體加粗

第七個(gè)是字體是否加粗的設(shè)置,關(guān)于字體是否加粗使用的是bold參數(shù),如果要讓字體加粗,另bold=True,否則不設(shè)置即可。

我們將第兒列字體進(jìn)行加粗,第一列不進(jìn)行設(shè)置,實(shí)現(xiàn)代碼如下:

最后效果如下:

關(guān)于字體相關(guān)的設(shè)置,我們就講到這里,下一篇開始講一些其他方面的設(shè)置,敬請(qǐng)期待。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容