菜鸟笔记
提升您的技术认知

pandas:利用styler对象设置series、dataframe在jupyter notebook中的输出样式(2)——内置样式-ag真人游戏

当前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方法的参数为:

  • cmapmatplotlib颜色映射(colormap)。类型为字符串或 colormap,默认值为’pubu’
  • low:最小颜色范围。类型为浮点值。默认为0。
  • high:最大颜色范围。类型为浮点值。默认为0。
  • axis:轴方向,即设置值的比较范围。默认值为0即按列方向比较,1为按行方向比较。
  • subset:指定作用范围(子集)。
  • text_color_threshold:文本的亮度阈值,用于辅助文本在不同背景色下的显示。类型为浮点值或整数,取值范围为0-10为全部文本都为暗色,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')
网站地图