当前pandas版本为:1.2.5。
Styler对象内置样式概述
pandas数据结构在Jupyter Notebook中以表格形式呈现。这些表格的格式化依赖于pandas中的Styler对象。Dateframe.style属性返回值为Styler对象。
Styler对象通过生成CSS样式进行格式化。
Styler对象内置了一系列样式方法。这些方法的返回值大部分还是Styler对象,Styler对象支持链式调用,这样就可以将多种样式叠加在一起。
highlight_null:高亮显示null值。highlight_min:高亮显示最小值。highlight_max:高亮显示最大值。background_gradient:依赖matplotlib,支持seaborn,以热力图(色阶)形式显示数值大小。bar:以数据条形式显示数值大小。
下面以案例的形式演示内置样式方法的使用,所有案例以以下案例为基础。
案例基础
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
score = pd.read_csv('./student_score.csv',encoding = 'gbk')
score

highlight_null:高亮显示null值
highlight_null方法的签名如下:
highlight_null(null_color: str = 'red', subset: Union[Hashable, NoneType, Sequence[Union[Hashable, NoneType]]] = None) -> 'Styler'
highlight_null方法具有两个参数:
null_color:指定null值的高亮颜色。类型为字符串,默认为红色。subset:指定作用范围(子集)。
highlight_null方法的返回值为Styler对象。
案例:高亮红色显示null值
# 构造null值
score.iloc[1, 2] = np.nan
score.style.highlight_null()

案例:高亮黄色显示null值
# 构造null值
score.iloc[1, 2] = np.nan
score.style.highlight_null(null_color='yellow')

highlight_min:高亮显示最小值
highlight_min方法的签名如下:
highlight_min(subset=None, color: str = 'yellow', axis: Union[str, int, NoneType] = 0) -> 'Styler'
highlight_min方法具有两个参数:
color:指定最小值的高亮颜色。类型为字符串,默认为黄色。subset:指定作用范围(子集)。axis:轴方向,即设置最小值的比较范围。默认值为0即按列方向比较,1为按行方向比较。
highlight_min方法的返回值为Styler对象。
案例:高亮黄色显示每列最小值
score.style.highlight_min()

案例:高亮黄色显示每行最小值
score.style.highlight_min(axis=1)

案例:高亮黄色显示所有元素中的最小值
score.style.highlight_min(axis=None)

案例:高亮红色显示某列中的最小值
score.style.highlight_min(axis=0,subset='高数',color='red')

highlight_max:高亮显示最大值
highlight_max方法的签名如下:
highlight_max(subset=None, color: str = 'yellow', axis: Union[str, int, NoneType] = 0) -> 'Styler'
highlight_max方法的参数、返回值与highlight_min方法类似,不再赘述。
background_gradient:以热力图(色阶)形式显示数值大小
background_gradient方法依赖matplotlib,支持seaborn。
background_gradient方法的签名为:
background_gradient(cmap='PuBu', low: float = 0, high: float = 0, axis: Union[str, int, NoneType] = 0, subset=None, text_color_threshold: float = 0.408, vmin: Union[float, NoneType] = None, vmax: Union[float, NoneType] = None) -> 'Styler'
background_gradient方法的参数为:
cmap:Matplotlib颜色映射(colormap)。类型为字符串或colormap,默认值为’PuBu’low:最小颜色范围。类型为浮点值。默认为0。high:最大颜色范围。类型为浮点值。默认为0。axis:轴方向,即设置值的比较范围。默认值为0即按列方向比较,1为按行方向比较。subset:指定作用范围(子集)。text_color_threshold:文本的亮度阈值,用于辅助文本在不同背景色下的显示。类型为浮点值或整数,取值范围为0-1,0为全部文本都为暗色,1为全部文本都为亮色。vmin:colormap中的最小值。类型为浮点数,默认值为数据中的最小值。vmax:colormap中的最大值。类型为浮点数,默认值为数据中的最大值。
background_gradient方法的返回值为Styler对象。
案例:background_gradient()方法默认样式
score.style.background_gradient()

案例:使用matplotlib内置colormap高亮显示
score.style.background_gradient(cmap='autumn_r')

案例:调整colormap颜色范围
score.style.background_gradient(cmap='autumn_r',high=0.5,low=0.5)

bar:以数据条形式显示数值大小。
bar方法的签名为:
bar(subset=None, axis: Union[str, int, NoneType] = 0, color='#d65f5f', width: float = 100, align: str = 'left', vmin: Union[float, NoneType] = None, vmax: Union[float, NoneType] = None) -> 'Styler'
bar方法的参数为:
width:最大值占单元格宽度的百分比。类型为浮点值,取值范围为0-100。默认为100。axis:轴方向,即设置数据条的比较范围。默认值为0即按列方向比较,1为按行方向比较。subset:指定作用范围(子集)。color:数据条颜色。类型为字符串或二元数组/列表。默认值为'#d65f5f'。- 字符串:所有单元格使用同一种颜色。
- 二元数组/列表:分别定义负值和正值数据条颜色,即
(负值颜色,正值颜色)。
- align :数据条的对齐方式。取值范围为
{'left', 'zero',' mid'},默认值为'left'。'left':最小值位于单元格的左侧。'zero':0值位于单元格的中央。'mid':(max-min)/2值位于单元格的中央。如果所有值均为正值,0值位于单元格左侧;如果所有值均为负值,0值位于单元格右侧。
vmin:数据条(左侧)最小值。类型为浮点数,默认值为数据中的最小值。vmax:数据条(右侧)最大值。类型为浮点数,默认值为数据中的最大值。
bar方法的返回值为Styler对象。
案例:bar()方法默认样式
score.style.bar()

案例:bar()方法align参数演示
score.style.bar(align='mid')

菜鸟笔记