当前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 pltscore = 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')

参考文献

https://pandas.pydata.org/docs/user_guide/style.html

Pandas:利用Styler对象设置Series、Dataframe在Jupyter Notebook中的输出样式(2)——内置样式相关推荐

  1. pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)

    pandas将列表list插入到dataframe的单元格中.pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes) 目录

  2. pandas使用set_table_attributes函数、display_html函数等在jupyter notebook中并排显示两个dataframe的内容(side by side)

    pandas使用set_table_attributes函数.display_html函数等在jupyter notebook中并排显示两个dataframe的内容(side by side) 目录

  3. Java 定义一个抽象类—水果,其中包括getWeight()方法,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型、重量。

    Java 定义一个抽象类-水果 其中包括getWeight()方法,编写程序分别创建苹果.桃子.橘子3个类,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型.重量. 抽象类Frui ...

  4. pandas 处理 excel 文件 之 Series DataFrame 篇

    创建Series import pandas as pd #从字典创建 dict = {'id':'1','name':'dekyi','age':'29'} s = pd.Series(dict) ...

  5. Spark15:Spark SQL:DataFrame常见算子操作、DataFrame的sql操作、RDD转换为DataFrame、load和save操作、SaveMode、内置函数

    前面我们学习了Spark中的Spark core,离线数据计算,下面我们来学习一下Spark中的Spark SQL. 一.Spark SQL Spark SQL和我们之前讲Hive的时候说的hive ...

  6. JSP内置对象:request、response、out、session、application等内置对象

    Java程序的功能主要是由Java包下的各个类在运行期所产生的对象所提供,并且应用这些对象组织构建程序所需的功能. 所谓JSP内置对象,是指在JSP网页环境之下,用户不需要声明而直接可以在JSP网页中 ...

  7. javaWeb 中Tomcat 10 jsp文件内置对象不能正常使用的问题(已解决)

    在这段时间学习javaweb时,因为是自己找的视频,下载了最新版本的Tomcat,Tomcat 10 ,然后就发现了很多问题,Tomcat 10 跟之前的版本 有很大的区别,以至于,10以下的版本的文 ...

  8. TF:jupyter notebook中plt.grid设置后不显示网格以及“TypeError: ‘bool‘ object is not callable”错误

    1 问题背景 在TF学习过程中,使用jupyter notebook,plt绘制序列并显示网格.但是在运行过程中,发现,代码可以正常运行,但是网格无法显示. 完整代码如下: import matplo ...

  9. php中表单输出成绩,js内置对象处理_打印学生成绩单的简单实现

    任务: 1.通过js的内置对象得到当前日期 var date=new Date(); var year=date.toString().slice(11,15); document.write(yea ...

  10. jupyter notebook中R语言绘图画布大小设置

    options(repr.plot.width=X, repr.plot.height=Y) #设置宽度 X, 高度 Y

最新文章

  1. spring包镜像下载地址
  2. Understanding JVM Internals---不得不转载呀
  3. springboot整合websocket实现群聊
  4. Python中collections模块
  5. 在consumer中调用provider服务
  6. 是什么样的骚操作让应用上线节省90%的时间
  7. 前端学习(1604):脚手架props与state
  8. DataGrip汉化方法
  9. 蓝桥杯 基础练习 高精度加法
  10. 有关python的知识点_Python常见的知识点整理
  11. “Python字符串index()方法应用案例”文末三道思考题答案
  12. 接手一个APP,如何从0到1去做测试体系的搭建?
  13. 华为鸿蒙HarmonyOS,华为鸿蒙HarmonyOS-系统概述
  14. 第八章指针实验成绩汇总
  15. React :caniuse-lite is outdated. please run next command
  16. 开源dns软件PowerDNS BIND9 mydns
  17. Log4j配置按照文件大小和日期分割日志文件
  18. 小熊错误_《三只小熊闯祸了》:想要孩子勇于承认错误,怎么跟TA聊?
  19. 想提高棋艺?试试这款围棋AI
  20. 有一种冲动:世界那么大

热门文章

  1. [跟进]_中国银联悄然推出B2C网站-银联在线商城
  2. nginx ajax 错误500,聊聊nginx报错499问题
  3. oracle漏洞修补,01-oracle漏洞修复
  4. oracle 索引 状态 unusable,usable ,disable,enable
  5. 手把手和你用原生JS写一个循环播放图片轮播
  6. linux md5加密文件,linux md5 加密字符串和文件方法
  7. 互联网时代运维价值的重塑
  8. Android Zxing 相册二维码/条码图片识别
  9. 三星s20 android 10.0,三星S20猎户CPU系列安卓10.0 TWRP Recovery V3.4.0.10
  10. 每日思考第 61 期:职场PUA与情场PUA