日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DataFrame表样式设置(一)

發(fā)布時(shí)間:2023/12/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DataFrame表样式设置(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

總第136篇/張俊紅

1.前言

我們知道Excel功能很強(qiáng)大,Python與Excel交互也有很多現(xiàn)成的模塊可以用,主要有xlrd、xlwt、openpyxl、xlsxwriter這四種可以用,這些模塊可以很好地通過(guò)Python實(shí)現(xiàn)Excel的功能,但是這些模塊有一個(gè)不太方便的地方就是針對(duì)每一個(gè)單元格的行列位置去操作的,每次使用都很麻煩,不像DataFrame那樣可以針對(duì)行列去進(jìn)行操作。DataFrame雖然操作便利,但是DataFrame又有個(gè)不如意的地方就是不能針對(duì)表去進(jìn)行設(shè)置格式(字體顏色、大小之類(lèi)的),所以有的時(shí)候?yàn)榱丝梢栽O(shè)置表的格式還是需要用那幾個(gè)比較麻煩的 Excel模塊。直到我遇到了StyleFrame模塊,這個(gè)模塊是把Pandas和openpyxl進(jìn)行了結(jié)合,讓你既可以享受DataFrame的操作便利,又可以輕松利用openpyxl進(jìn)行表格樣式設(shè)置。

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

Excel中我們平常設(shè)置的主要有字體(類(lèi)型、顏色、邊框線、背景色、下劃線、大小、加粗)、對(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)行安裝:

pip?install?StyleFrame

你也可以選擇其他安裝方式,關(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版本安裝成功的。安裝命令如下:

pip?install?StyleFrame==1.6.2

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

from?StyleFrame?import?StyleFrame,?Styler,?utilssf?=?StyleFrame({"col_1":?["一","二","三"],"col_2":["Excel","Sql","Python"]})

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

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

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

Styler(bg_color=None,?bold=False,?font=utils.fonts.arial,?font_size=12,?font_color=None,number_format=utils.number_formats.general,?protection=False,?underline=None,border_type=utils.borders.thin,?horizontal_alignment=utils.horizontal_alignments.center,vertical_alignment=utils.vertical_alignments.center,?wrap_text=True,?shrink_to_fit=True,fill_pattern_type=utils.fill_pattern_types.solid,?indent=0,?comment_author=None,?comment_text=None)

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

參數(shù)說(shuō)明
bg_color單元格背景色
bold字體加粗與否設(shè)置
font字體類(lèi)型
font_size字體大小
font_color字體顏色
number_format數(shù)值格式
protection保護(hù)表格不被修改
underline下劃線設(shè)置
border_type邊框線設(shè)置
horizontal_alignment水平方向?qū)R設(shè)置
vertical_alignment垂直方向?qū)R設(shè)置
wrap_text是否自動(dòng)換行
shrink_to_fit是否根據(jù)字符長(zhǎng)度縮小以適應(yīng)單元格
fill_pattern_type背景填充模式
indent縮進(jìn)距離
comment_author批注作者
comment_text批注內(nèi)容

4.使用樣式

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

4.1在列上使用

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

apply_column_style(cols_to_style,styler_obj,style_header)

參數(shù)說(shuō)明如下:

參數(shù)說(shuō)明
cols_to_style要設(shè)置樣式的列名
styler_obj樣式對(duì)象,即上面設(shè)置過(guò)的Styler
style_header是否將表頭也設(shè)置樣式

4.2在行上使用

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

apply_style_by_indexes(indexes_to_style,styler_obj,cols_to_style)

參數(shù)說(shuō)明如下:

參數(shù)說(shuō)明
indexes_to_style要設(shè)置樣式的行,sf[sf['col1'] = 20]表示設(shè)置col1列等于20的行
styler_obj樣式對(duì)象
cols_to_style要設(shè)置通過(guò)indexes_to_style選出那些行對(duì)應(yīng)的哪些列

5.字體設(shè)置

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

5.1字體類(lèi)型

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

aegean?=?'Aegean' aegyptus?=?'Aegyptus' aharoni?=?'Aharoni?CLM' anaktoria?=?'Anaktoria' analecta?=?'Analecta' anatolian?=?'Anatolian' arial?=?'Arial' calibri?=?'Calibri' david?=?'David?CLM' dejavu_sans?=?'DejaVu?Sans' ellinia?=?'Ellinia?CLM'

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

#將col_1和col_2列的字體設(shè)置成微軟雅黑 sf.apply_column_style(cols_to_style=["col_1","col_2"],?styler_obj=Styler(font='Arial'),style_header=True) ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()

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

5.2顏色

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

white?=?op_colors.WHITE?#白色 blue?=?op_colors.BLUE?#藍(lán)色 dark_blue?=?op_colors.DARKBLUE?#深藍(lán)色 yellow?=?op_colors.YELLOW?#黃色 dark_yellow?=?op_colors.DARKYELLOW?#深黃色 green?=?op_colors.GREEN?#綠色 dark_green?=?op_colors.DARKGREEN?#深綠色 black?=?op_colors.BLACK?#黑色 red?=?op_colors.RED?#紅色 dark_red?=?op_colors.DARKRED?#深紅色 purple?=?'800080'?#紫色 grey?=?'D3D3D3'?#灰色

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

sf.apply_column_style(cols_to_style=["col_1"],?styler_obj=Styler(font_color='green'),style_header=True)sf.apply_column_style(cols_to_style=['col_2'],?styler_obj=Styler(font_color='red'),style_header=True)ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()

最后效果如下:

5.3邊框線

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

dash_dot?=?'dashDot'?#點(diǎn)劃線 dash_dot_dot?=?'dashDotDot'?#雙點(diǎn)劃線 dashed?=?'dashed'?#虛線 dotted?=?'dotted'?#點(diǎn)線 double?=?'double'?#雙線 hair?=?'hair'?#絲線 medium?=?'medium' medium_dash_dot?=?'mediumDashDot'?#中等點(diǎn)劃線 medium_dash_dot_dot?=?'mediumDashDotDot'?#中等雙點(diǎn)劃線 medium_dashed?=?'mediumDashed'?#中等虛線 slant_dash_dot?=?'slantDashDot'?#斜劃線 thick?=?'thick'?#粗線 thin?=?'thin'?#細(xì)線

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

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

sf.apply_column_style(cols_to_style=["col_1","col_2"],?styler_obj=Styler(border_type='dashDot'),style_header=True)ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()

最后效果如下:

5.4背景色

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

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

sf.apply_column_style(cols_to_style=["col_1"],?styler_obj=Styler(bg_color='green'),style_header=True)sf.apply_column_style(cols_to_style=['col_2'],?styler_obj=Styler(bg_color='red'),style_header=True)ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()

最后效果如下:

5.5下劃線

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

single?=?'single'?#單下劃線 double?=?'double'?#雙下劃線

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

sf.apply_column_style(cols_to_style=["col_1","col_2"],?styler_obj=Styler(underline='single'),style_header=True)ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()

最后效果如下:

5.6字體大小

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

sf.apply_column_style(cols_to_style=["col_1"],?styler_obj=Styler(font_size=20),style_header=True)sf.apply_column_style(cols_to_style=["col_2"],?styler_obj=Styler(font_size=12),style_header=True)ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()

最后效果如下:

5.7字體加粗

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

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

sf.apply_column_style(cols_to_style=["col_2"],?styler_obj=Styler(bold=True),style_header=True)ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()

最后效果如下:

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

總結(jié)

以上是生活随笔為你收集整理的DataFrame表样式设置(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。