Pandas:利用Styler对象设置Series、Dataframe在Jupyter Notebook中的输出样式(3)——格式化显示值、内置显示值格式化方法、表格外观、样式复用
当前pandas
版本为:1.2.5。
pandas
数据结构在Jupyter Notebook
中以表格形式呈现。这些表格的格式化依赖于pandas
中的Styler
对象。Dateframe.style
属性返回值为Styler
对象。
Styler
对象的方法的返回值大部分还是Styler
对象,Styler
对象支持链式调用,这样就可以将多种样式叠加在一起。
1. 显示值格式化
pandas
在notebook中的值分为显示值和实际值。Styler.format()
方法可以格式化显示值。
Styler.format()
方法的签名如下:Styler.format(formatter, subset=None, na_rep=None)
Styler.format()
方法具有以下参数:
formatter
:格式。类型为字符串、可调用对象、字典或None
。默认值为None
。- 字符串:格式化字符串。
- 字典:键为列索引,值为对应列的格式化字符串。
- 可调用对象:参数为单独的一个值即元素,返回值为字符串。
- 可调用对象字典:键为列索引,值为可调用对象。
subset
:用于指定生效范围,即DataFrame
的索引。na_rep
:缺失值的显示值。类型为字符串。默认为None
,即不作任何更改。
Styler.format()
方法的返回值为Styler
对象。
案例:Styler.format()
方法formatter
参数演示
本案例案例中,formatter
参数分别采用字符串、字典、可调用对象字典对DataFrame
进行格式化。
首先对设置所有单元格均保留小数点后2位数字,然后再设置b列显示为百分比保留2位小数,最后将c列字符串设置为大写。
import numpy as np
import pandas as pddf = pd.DataFrame(np.random.randn(4, 2), columns=['a', 'b'])
df['c'] = ['a', 'b', 'c', 'd']df.style.format("{:.2f}").format({'b':"{:.2%}"}).format({'c': str.upper})
运行df
可知,df
的通过Styler
对象格式化的显示值不影响实际值。
2. 内置显示值格式化方法
为了便于格式化显示值,Styler
类内置了一些针对所有单元格的全局性的内置方法。
设置浮点数精度
Styler.set_precision()
方法用于全局设置浮点数的显示精度。
Styler.set_precision()
方法的签名如下:Styler.set_precision(precision)
Styler.set_precision()
方法具有一个参数: precision
:指定浮点数的显示精度。类型为整数。
Styler.set_precision()
方法的返回值为Styler
对象。
设置缺失值显示值
Styler.set_na_rep()
方法可用于全局设置缺失值的显示值。
Styler.set_na_rep()
方法的签名如下:Styler.set_na_rep(na_rep)
Styler.set_na_rep()
方法只有一个参数: na_rep
:指定缺失值显示值。类型为字符串。
Styler.set_na_rep()
方法的返回值为Styler
对象。
案例:演示Styler.set_precision()
方法和Styler.set_na_rep()
方法
import numpy as np
import pandas as pddf = pd.DataFrame(np.random.randn(4, 2), columns=['a', 'b'])
df.iloc[1, 1] = np.nan
df.style.set_precision(3).set_na_rep('FAIL')
3. 表格外观
Styler
类还定义了一些与数据无关的控制表格外观的方法
设置表格标题
Styler.set_caption()
方法可用于设置表格的标题。
Styler.set_caption()
方法的签名如下:Styler.set_caption(caption)
Styler.set_caption()
方法只有一个参数: caption
:指定表格的标题。类型为字符串。
Styler.set_caption()
方法的返回值为Styler
对象。
隐藏行索引
Styler.hide_index()
方法可用于隐藏行索引。
Styler.hide_index()
方法的签名如下:Styler.hide_index()
Styler.hide_index()
方法的返回值为Styler
对象。
隐藏列
Styler.hide_columns()
方法可用于隐藏列。
Styler.hide_columns()
方法的签名如下:Styler.hide_columns(subset)
Styler.hide_columns()
方法只有一个参数 subset
:用于指定生效范围,即DataFrame
的索引。
Styler.hide_columns()
方法的返回值为Styler
对象。
案例:演示设置标题、隐藏行索引、隐藏列
import numpy as np
import pandas as pddf = pd.DataFrame(np.random.randn(4, 3), columns=['a', 'b', 'c'])df.style.set_caption("标题").hide_index().hide_columns("a")
4. 样式复用
通过Styler
对象构建的样式可以复用。Styler.export()
方法用于输出样式,Styler.use()
方法用于应用样式,两者往往配合使用。
输出样式
Styler.export()
方法可用于输出样式,往往与Styler.use()
方法配合使用。
Styler.export()
方法的签名如下:Styler.export()
Styler.export()
方法的返回值为样式函数列表。
输出样式
Styler.use()
方法可用于应用样式,往往与Styler.export()
方法配合使用。
Styler.use()
方法的签名如下:Styler.use(styles)
Styler.use()
方法具有一个参数 styles
:指定样式。类型为样式函数列表,通常为Styler.use(styles)
方法的返回值。
Styler.use()
方法的返回值为Styler
对象。
案例:复用样式
import numpy as np
import pandas as pddf = pd.DataFrame(np.random.randn(4, 2), columns=['a', 'b'])
style1 = df.style.highlight_max()
style1
df2=-df
df2.style.use(style1.export())
参考文献
https://pandas.pydata.org/docs/user_guide/style.html
Pandas:利用Styler对象设置Series、Dataframe在Jupyter Notebook中的输出样式(3)——格式化显示值、内置显示值格式化方法、表格外观、样式复用相关推荐
- pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)
pandas将列表list插入到dataframe的单元格中.pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes) 目录
- pandas使用set_table_attributes函数、display_html函数等在jupyter notebook中并排显示两个dataframe的内容(side by side)
pandas使用set_table_attributes函数.display_html函数等在jupyter notebook中并排显示两个dataframe的内容(side by side) 目录
- Java 定义一个抽象类—水果,其中包括getWeight()方法,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型、重量。
Java 定义一个抽象类-水果 其中包括getWeight()方法,编写程序分别创建苹果.桃子.橘子3个类,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型.重量. 抽象类Frui ...
- pandas 处理 excel 文件 之 Series DataFrame 篇
创建Series import pandas as pd #从字典创建 dict = {'id':'1','name':'dekyi','age':'29'} s = pd.Series(dict) ...
- jsp 将页面中的值导入java中_JavaWeb - JSP:概述和语法,内置对象,JavaBean 组件,MVC 设计模式
JSP 的概述 概念 JSP 是 Java Server Pages 的简称,跟 Servlet 一样可以动态生成 HTML 响应, JSP 文件命名为 xxx.jsp. 与 Servlet 不同,J ...
- TF:jupyter notebook中plt.grid设置后不显示网格以及“TypeError: ‘bool‘ object is not callable”错误
1 问题背景 在TF学习过程中,使用jupyter notebook,plt绘制序列并显示网格.但是在运行过程中,发现,代码可以正常运行,但是网格无法显示. 完整代码如下: import matplo ...
- 设计模式之Future模式——提交任务后立即得到一个Future对象,后面利用该对象得到具体的执行结果。加上回调功能,任务执行结束通知调用者或直接回调相应方法
1. Future模式的实现逻辑 1.1 在具体实现之前,我们先将Future模式的实现逻辑和流程理清楚,然后编写代码. 1.2 以甜品店买奶茶为例.第一步:得先有服务员:第二步:我们提交一个奶茶订单 ...
- jupyter notebook中R语言绘图画布大小设置
options(repr.plot.width=X, repr.plot.height=Y) #设置宽度 X, 高度 Y
- Angualr设置自定义管道Pipe(类似Vue的过滤器filters)货币格式化(实现内置管道CurrencyPipe的功能)
新建管道: ng g pipe pipes/money或ng g p pipes/money pipes/money.pipe.ts,同时在父级module.ts加入 im ...
- TypeScript内置对象
前言 JavaScript 中有很多内置对象,它们可以直接在 TypeScript 中当做定义好了的类型. 内置对象是指根据标准在全局作用域(Global)上存在的对象.这里的标准是指 ECMAScr ...
最新文章
- iOS10 权限崩溃问题
- Nginx-09:Nginx原理
- Java 理论与实践: 正确使用 Volatile 变量--转
- hdu-2199 Can you solve this equation?(二分+精度)
- RxJS switchMap, mergeMap, concatMap,exhaustMap 的比较
- 【iVX 初级工程师培训教程 10篇文拿证】03 事件及猜数字小游戏
- ssl1202-滑雪【记忆化搜索法】
- 吴恩达作业3:利用深层神经网络实现小猫的分类
- 2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)
- Java—Remove Deplicates from Sorted Array(顺序数组中去重位置)
- 路由访问控制列表的设计
- css实现垂直居中(+水平居中)
- eclipse 使用问题
- mysql报表展示工具_Navicat for MySQL 设计报表版面教程
- [机缘参悟-74]:沟通技巧-无论在职场还是在家,尽量少用反问句
- Zabbix实现短信报警设置(实战)
- 求索NoSQL的现在与未来,第五届 Techo TVP 开发者峰会圆满落幕
- SVG 矩形rect 学习
- 免费数据 | CnOpenData空气质量站点监测数据
- 购买SSL证书的注意事项有哪些