DataFrame表样式设置(二)
總第138篇/張俊紅
在DataFrame樣式表設置的第一節DataFrame表樣式設置(一)中我們講了字體相關的一些設置,這一節我們講一下,對齊方式、數字顯示、條件格式相關的一些設置。
1.對齊方式
對齊方式主要有兩種,一種是水平方向對齊,一種是垂直方向對齊。
1.1水平方向對齊
關于水平方向對齊情況使用的是horizontal_alignment參數,主要有如下幾個參數值可選:
general?=?'general'?#一般 left?=?'left'?#左對齊 center?=?'center'?#居中對齊 right?=?'right'?#右對齊 fill?=?'fill'?#填滿單元格對齊 justify?=?'justify'?#兩端對齊 center_continuous?=?'centerContinuous' distributed?=?'distributed'?#分散對齊#注意區分兩端對齊和分散對齊我們把col_1列設置成左對齊,col_2列設置成右對齊,col_3列設置成居中對齊,實現代碼如下:
sf.apply_column_style(cols_to_style=["col_1"],?styler_obj=Styler(horizontal_alignment="left"),style_header=True) sf.apply_column_style(cols_to_style=["col_2"],?styler_obj=Styler(horizontal_alignment="right"),style_header=True) sf.apply_column_style(cols_to_style=["col_3"],?styler_obj=Styler(horizontal_alignment="center"),style_header=True) ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()最后效果如下:
1.2垂直方向對齊
垂直方向對齊和水平方向對齊的原理一樣,關于垂直對齊使用的是vertical_alignment參數,主要有如下幾個參數值可選:
top?=?'top'?#靠上對齊 center?=?'center'?#靠中對齊 bottom?=?'bottom'?#靠下對齊 justify?=?'justify'?#兩端對齊 distributed?=?'distributed'?#分散對齊2.數字顯示
我們知道一個數字有不同的表現形式,可以是小數點也可以是百分數,可以設置保留兩位小數點還可以設置保留三位小數點。我們要想設置數字的這些顯示形式,需要用到number_format參數,主要有如下幾個參數值可選:
general?=?'General'?#對應Excel中的常規 general_integer?=?'0'?#不保留小數點? general_float?=?'0.00'?#保留兩位小數點 percent?=?'0.0%'?#百分數 thousands_comma_sep?=?'#,##0'?#千位分隔樣式 date?=?'DD/MM/YY'?#年月日 time_24_hours?=?'HH:MM'?#小時分鐘 time_24_hours_with_seconds?=?'HH:MM:SS'?#小時分鐘秒 time_12_hours?=?'h:MM?AM/PM'?#12小時分鐘?上下午區分 time_12_hours_with_seconds?=?'h:MM:SS?AM/PM'?#12小時分鐘秒?上下午區分 date_time?=?'DD/MM/YY?HH:MM'?#年月日時分 date_time_with_seconds?=?'DD/MM/YY?HH:MM:SS'?#年月日時分秒我們把col_1列設置成常規格式,col_2列設置成保留3位小數點,col_3列設置成百分數格式,實現代碼如下:
sf.apply_column_style(cols_to_style=["col_1"],?styler_obj=Styler(number_format="0"),style_header=True) sf.apply_column_style(cols_to_style=["col_2"],?styler_obj=Styler(number_format="0.000"),style_header=True) sf.apply_column_style(cols_to_style=["col_3"],?styler_obj=Styler(number_format="0.0%"),style_header=True) ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()最后效果如下:
3.條件格式
條件格式主要將滿足條件的某些值重點突出顯示出來,條件格式主要用在色階顯示中,可選的條件如下:
num?=?'num'?#根據具體數值 percent?=?'percent'?#根據百分數 max?=?'max'?#根據最大值 min?=?'min'?#根據最小值 formula?=?'formula'?#根據公式 percentile?=?'percentile'?#根據分位數色階調整需要用到add_color_scale_conditional_formatting方法。
4.行寬列高設置
4.1設置列寬
設置列寬的時候,我們可以將整個表中所有列設置成一樣的寬度,也可以不同列的列寬是不一樣的。設置列寬不是通過設置Styler來設置的,而是在sf表上直接調用set_column_width和set_column_width_dict方法即可。
我們把整個表列寬都設置成10,實現代碼如下:
sf.set_column_width(columns?=?["col_1","col_2","col_3"],width=10) ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()最后效果如下:
我們把col_1列列寬設置成10,col_2列列寬設置成20,col_3列列寬設置成30,實現代碼如下:
sf.set_column_width_dict(col_width_dict?=?{"col_1":10,"col_2":20,"col_3":30}) ew?=?StyleFrame.ExcelWriter(r'my_excel.xlsx') sf.to_excel(ew) ew.save()最后效果如下:
4.2設置行高
設置列寬與行高的原理是一樣的,使用的方法是set_row_height和set_row_height_dict。
5.讀取本地表
讀取本地表就是我們可將本地的Excel文件讀取進來,然后對其設置樣式,也可以將本地Excel文件的樣式讀取進來。讀取文件用到的方法是read_excel。
read_excel有如下參數:
| path | 待讀取文件路徑 |
| sheet_name | 要讀取文件的sheet名 |
| read_style | 是否讀取文件表中已有的樣式,默認是False |
| use_openpyxl_styles | 是使用 Openpyxl的風格,還是使用Styler風格,默認False,即使用Styler風格 |
| read_comments | 是否讀取批注,默認Fasle |
需要注意的一點是,讀取進來的本地表不可以進行預覽,即你在Python里面是看不到長什么樣子的。讀取文件實例如下:
from?StyleFrame?import?StyleFrame sf=StyleFrame.read_excel(r"C:\Users\my_excel.xlsx") sf------- <StyleFrame.style_frame.StyleFrame?at?0x287b4eca90>6.保存到本地
將文件格式設置好了,我們就可以將文件導出到本地進行保存,保存文件用到的方法是to_excel。
to_excel有如下參數:
| excel_writer | 輸出文件路徑 |
| sheet_name | 輸出文件sheet名 |
| allow_protection | 是否受保護,默認是False |
| right_to_left | 使sheet從右到左排 |
| columns_to_hide | 要隱藏的列名,以列表傳入 |
| row_to_add_filters | 要過濾哪些行,傳入行索引即可 |
| columns_and_rows_to_freeze | 要凍結的窗口,如果輸入"C3",則會把A、B列和1、2行凍結 |
| best_fit | 傳入列名,會根據列寬自動調節字體大小 |
總結
以上是生活随笔為你收集整理的DataFrame表样式设置(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么样面相的男人口蜜腹剑
- 下一篇: 今天是你的生日原唱是谁 今天是你的生日歌