pandas之表格样式
在juoyter notebook中直接通过df输出DataFrame时,显示的样式为表格样式,通过sytle可对表格的样式做一些定制,类似excel的条件格式。
df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) s = df.style print(s,type(s)) #<pandas.io.formats.style.Styler object at 0x000001CD7B409710> <class 'pandas.io.formats.style.Styler'>
对表格创建样式有两种方式,都需要额外定义一个处理样式的函数
①df.style.applymap(func,*args,**kwargs):对DataFrame中的每一个元素都按照func的逻辑处理
# 将小于0.2的值字体设置为红色,否则设置为黑色 df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) def lt_red(val):if val<0.2:color = 'red'else:color = 'black' # print(color)return ('color:%s'%color) df.style.applymap(lt_red)
②df.style.apply(func,axis=0,subset=**,*args,**kwargs):对DataFrame的行或列按照func的逻辑处理,axis默认为0按照列处理,1按照行处理。
# 将A、C、D列中的每一列最大值背景颜色填充为黄色 def highlight_max(s):is_max = s == s.max()l = []for v in is_max:if v:l.append('background-color:yellow')else:l.append('') # print(l)return l df.style.apply(highlight_max,axis = 1,subset = ['A','C','D'])
如果在style中需要同时进行行和列的切片,需要用到pandas的IndexSlice
# 对索引为2-5行,列为A、C、D中的每一列最大值背景颜色填充为黄色 df.style.apply(highlight_max,axis=1,subset = pd.IndexSlice[2:5,['A','B','C']]) ## df.loc[2:5,['A','C']].style.apply(highlight_max,axis=1)也可以实现## 上一种方法会显示所有的DataFrame内容,然后对满足条件的行和列做格式处理;而后一种方法是只显示满足条件的行和列,再做格式处理
格式化DataFrame中的数值
df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) # df.style.format('{:.2%}',subset=['B','C']) #对所有符合条件的采用一种格式format,整个格式用''括起来 df.style.format({'A':'{:.2f}','B':'{:%}','C':'{:+}','D':'{:.2%}'}) #对不同的列采用不同的format,参数为一个字典,key为列名,value为格式 # A、B、C、D列的格式分别为2位小数、百分数、前面加+号,2位小数的百分数
定位空值df.style.highlight_null(null_color='red'),对空值设置背景颜色
对应还有highlight_max()和highlight_min(),参数(subset=None, color='yellow', axis=0)
df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) df['B'][2] = np.nan df.style.highlight_null(null_color='red')
色彩映射
df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) df.style.background_gradient(cmap='Reds',axis = 1,low = 0,high = 1,subset = ['A','C','D']) # 按行处理,最小值对应颜色表中的最浅色,最大值对应颜色表中的最深色,1表示按行处理
条形图
df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) df.style.bar(width=100,subset=['A','C','D'],color='lightpink')
分段式构建样式
df.style.\bar(width=100,subset=['A'],color='lightpink').\highlight_max(axis = 1,color='red').\highlight_min(axis = 1,color='green') #除最后一行,每一行都以.\结尾
转载于:https://www.cnblogs.com/Forever77/p/11336981.html
pandas之表格样式相关推荐
- pandas美化表格并生成图片
背景 甲方爸爸的任(无)性(理)需(要)求(求):统计数据,并以表格的形式生成图片,每一列要用颜色标明前三位和后三位,最后把图片发送到钉钉群. 之前都是手工统计,既费时又费力:要改成代码每天自动发送. ...
- 【Python】Pandas 表格样式设置指南,看这一篇就够了!
Pandas 表格样式设置指南 来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 最近这些年,Python在数据分析以及人工智能领域是越来越火. 这离不开pandas.numpy. ...
- python复制excel模板并保留表格样式
需求:按照模板生成excel报表. 本地有一个模板Excel表,是xlsx格式.需要把传过来的数据,按照模板表生成新的写入数据的报表. 情况:先尝试了pandas,发现生成的新表并不会保留模板表中的样 ...
- python3 excel样式_python3my使用python.pandas修改excel样式
python3my使用python.pandas修改excel样式 环境:python 3.6.8 以某米赛尔号举个例子吧: >>> pd.read_excel('1.xlsx', ...
- python3 excel样式_xls0-python3my使用python.pandas修改excel样式
xls0-python3my使用python.pandas修改excel样式 select 6006*0.618 *0.618 x,6006*0.618 xs from DUAL ; select 6 ...
- matplotlib笔记三:表格样式
1.表格样式创建 import numpy as np import pandas as pd import matplotlib.pyplot as plt# 表格视觉样式:Dataframe.st ...
- 源码推荐:仿写映客直播 ,快速切换主题 ,星星评分控件,表格样式,可以横向移动的表格, 仿微信键盘-
仿写映客直播(上传者:五仁月饼) 工作之余写的,基于IJKPlayer播放,对内存做了处理.目前已完成直播列表和直播间的搭建,后续还会慢慢完善. 项目地址 publishImageAndVideoAn ...
- phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...
精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...
- 两两对应成排的 表格 样式
样式需求 这种就不能用原生的表格样式 和 组件的table 来写 只能用盒子去拼写 下面是我写的 html css 样式是行内式 有点 乱 <div *ngIf="item['COMP ...
最新文章
- 安卓端网页浏览过程中实时更新title的web实现
- Mac休眠后解决卡死转圈问题
- java分解因式_用JAVA因式分解 并以9=3×3格式输出
- python绘制动态模拟图-Python实现模拟时钟代码推荐
- Oracle高级查询之OVER (PARTITION BY ..)
- FFT C语言 修改了matlab
- CalendarExtender控件的中文显示问题
- 高通量数据中批次效应的鉴定和处理(六)- 直接校正表达矩阵
- android代码使用adb,如何使用adb在Android 11上触发BroadcastReceiver?
- 12306外包给阿里巴巴、IBM等大企业做是否可行?
- azure备份存储层分类_备份到Azure –如何做到这一点?
- 【emWin】例程十:bmp图片显示
- Jmeter压力测试-微信小程序
- 光伏发电极其并网控制技术 最大功率点跟踪
- 2021年影响会计人员的十大信息技术榜单出炉,RPA再次登榜
- 马蜂窝张矗:我对技术团队绩效考核管理的几点思考
- react 最佳入门_详解React-Todos入门例子
- 功能强大的截图软件——Snipaste
- 所有专业课考c语言的学校,计算机考研哪些学校专业课考408?一共82所院校
- 爬虫:爬东方财富网股票数据