表格视觉样式:Dataframe.style (转)
时间:2020-07-11
本文章向大家介绍表格视觉样式:Dataframe.style (转),主要包括表格视觉样式:Dataframe.style (转)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.表格样式创建
表格视觉样式:Dataframe.style → 返回pandas.Styler对象的属性,具有格式化和显示Dataframe的有用方法
样式创建:
① Styler.applymap:elementwise → 按元素方式处理Dataframe
② Styler.apply:column- / row- / table-wise → 按行/列处理Dataframe
import numpy as np import pandas as pd import matplotlib.pyplot as plt % matplotlib inline
#样式 df = pd.DataFrame(np.random.randn(10, 4), columns=['a','b','c','d']) sty = df.style print(sty, type(sty)) # 查看样式类型 sty # 显示样式
---->
<pandas.formats.style.Styler object at 0x00000000097731D0> <class 'pandas.formats.style.Styler'>
按元素处理样式 df.style.applymap( 函数 )
# 按元素处理样式:style.applymap() def color_neg_red(val): if val < 0: color = 'red' else: color = 'black' return ('color:%s'% color) df.style.applymap(color_neg_red) # 创建样式方法,使得小于0的数变成红色 # style.applymap() → 自动调用其中的函数
按行/列处理样式 df.style.apply( 函数, axis=0按列, subset=['b','c']处理b、c列 )
# 按行/列处理样式:style.apply() def highlight_max(s): is_max = s == s.max() print(is_max) lst = [] for v in is_max: if v: lst.append(' padding: 0px; color: rgb(128, 0, 0); line-height: 1.5 !important;">') else: lst.append('') return (lst) df.style.apply(highlight_max, axis=0, subset=['b', 'c']) # axis:0为列,1为行,默认为0; # subset:索引 # 创建样式方法,每列最大值填充黄色
0 False 1 False 2 True 3 False 4 False 5 False 6 False 7 False 8 False 9 False Name: b, dtype: bool 0 False 1 False 2 True 3 False 4 False 5 False 6 False 7 False 8 False 9 False Name: b, dtype: bool 0 False 1 False 2 False 3 True 4 False 5 False 6 False 7 False 8 False 9 False Name: c, dtype: bool
样式索引、切片
df.style.apply(highlight_max, axis = 1, subset = pd.IndexSlice[2:5,['b', 'd']]) 按照index索引,再切片b、d列所对应的值
# 样式索引、切片 df.style.apply(highlight_max, axis = 1, subset = pd.IndexSlice[2:5,['b', 'd']]) # 通过pd.IndexSlice[]调用切片 # 也可:df[2:5].style.apply(highlight_max, subset = ['b', 'd']) → 先索引行再做样式
b True d False Name: 2, dtype: bool b True d False Name: 2, dtype: bool b False d True Name: 3, dtype: bool b True d False Name: 4, dtype: bool b False d True Name: 5, dtype: bool
2.表格显示控制
df.head().style.format("{:.2%}")
# 按照百分数显示 df = pd.DataFrame(np.random.randn(10,4),columns=['a','b','c','d']) print(df.head()) df.head().style.format("{:.2%}")
a b c d 0 1.239244 0.018364 0.570776 0.087462 1 -0.340928 -0.217569 -0.532815 -1.535981 2 -0.647936 -1.520526 -1.937499 -0.257186 3 -0.887309 1.037361 0.084524 0.187425 4 1.821439 -0.728899 0.191298 0.016149
df.head().style.format("{:.4f}")
# 显示小数点数 df.head().style.format("{:.4f}")
df.head().style.format("{:+.2f}")
# 显示正负数 df.head().style.format("{:+.2f}")
df.head().style.format({'b':"{:.2%}", 'c':"{:+.3f}", 'd':"{:.3f}"})
# 分列显示 df.head().style.format({'b':"{:.2%}", 'c':"{:+.3f}", 'd':"{:.3f}"})
3.表格样式调用
Styler内置样式调用
df.style.highlight_null(null_color='red') #定位空值
# 定位空值
df = pd.DataFrame(np.random.rand(5, 4), columns=list('ABCD')) df['A'][2] = np.nan df.style.highlight_null(null_color='red')
df.style.background_gradient(cmap='Greens',axis =1,low=0,high=1) 色彩映射
# 色彩映射 df = pd.DataFrame(np.random.rand(10,4),columns = list('ABCD')) df.style.background_gradient(cmap='Greens',axis =1,low=0,high=1) # cmap:颜色; # axis:映射参考,0为行,1以列
df.style.bar(subset=['A', 'B'], color='#d65f5f', width=100)
# 条形图 df = pd.DataFrame(np.random.rand(10,4),columns = list('ABCD')) df.style.bar(subset=['A', 'B'], color='#d65f5f', width=100) # width:最长长度在格子的占比
# 分段式构建样式 df = pd.DataFrame(np.random.rand(10,4),columns = list('ABCD')) df['A'][[3,2]] = np.nan df.style.\ bar(subset=['A', 'B'], color='#d65f5f', width=100).\ highlight_null(null_color='yellow')
原文地址:
https://www.cnblogs.com/shengyang17/p/9544742.html
原文地址:https://www.cnblogs.com/a00ium/p/13285321.html
- Nodejs学习笔记(十七)--- 浮点运算decimal.js
- AI时代让自己幸福更是一种能力
- 持续不断地推荐儿童不宜视频背后,YouTube是这样训练AI的
- 人工智能会导致大量失业,你怕吗
- 机器人产业链分析-中国机器人产业的发展机遇和挑战
- 如何与深度学习服务器优雅的交互?
- 比特币大跌又反弹30%,区块链技术与企业级有着怎样的关系?
- 十个实用MySQL函数
- 使用Apprenda和R分析应用程序工作负载数据
- 实现微信朋友圈所有动态点赞的自动化用例
- 后台设计的一些总结
- 2017年区块链当中的黑客大事件
- 5个云安全解决方案的注意事项
- 深入剖析ASP.NET的编译原理之二:预编译(Precompilation)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php一步一步实现mysql协议(三) ——登录认证密码加密
- php一步一步实现mysql协议(四)——执行命令
- EdgeX foundry树莓派搭建与MQTT通讯
- .NET Core使用NPOI将Excel中的数据批量导入到MySQL
- RTSP协议网络摄像头网页无插件直播平台EasyNVR的云端综合管理平台EasyNVS提交基础配置报错原因分析
- 10.深入k8s:调度的优先级及抢占机制源码分析
- redis
- synchronized底层是怎么实现的?
- RSA
- Syncd - 开源自动化部署工具
- pointer-events:none禁用鼠标事件
- TiCDC 首个 GA 版本发布,特性与场景全揭秘
- Linux远程ssh执行命令expect使用及几种方法
- 数据结构--线性表和链表的基础知识
- Salesforce LWC学习(二十五) Jest Test