在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之表格样式相关推荐

  1. pandas美化表格并生成图片

    背景 甲方爸爸的任(无)性(理)需(要)求(求):统计数据,并以表格的形式生成图片,每一列要用颜色标明前三位和后三位,最后把图片发送到钉钉群. 之前都是手工统计,既费时又费力:要改成代码每天自动发送. ...

  2. 【Python】Pandas 表格样式设置指南,看这一篇就够了!

    Pandas 表格样式设置指南 来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 最近这些年,Python在数据分析以及人工智能领域是越来越火. 这离不开pandas.numpy. ...

  3. python复制excel模板并保留表格样式

    需求:按照模板生成excel报表. 本地有一个模板Excel表,是xlsx格式.需要把传过来的数据,按照模板表生成新的写入数据的报表. 情况:先尝试了pandas,发现生成的新表并不会保留模板表中的样 ...

  4. python3 excel样式_python3my使用python.pandas修改excel样式

    python3my使用python.pandas修改excel样式 环境:python 3.6.8 以某米赛尔号举个例子吧: >>> pd.read_excel('1.xlsx', ...

  5. 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 ...

  6. matplotlib笔记三:表格样式

    1.表格样式创建 import numpy as np import pandas as pd import matplotlib.pyplot as plt# 表格视觉样式:Dataframe.st ...

  7. 源码推荐:仿写映客直播 ,快速切换主题 ,星星评分控件,表格样式,可以横向移动的表格, 仿微信键盘-

    仿写映客直播(上传者:五仁月饼) 工作之余写的,基于IJKPlayer播放,对内存做了处理.目前已完成直播列表和直播间的搭建,后续还会慢慢完善. 项目地址 publishImageAndVideoAn ...

  8. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...

  9. 两两对应成排的 表格 样式

    样式需求 这种就不能用原生的表格样式 和 组件的table 来写 只能用盒子去拼写 下面是我写的 html css 样式是行内式 有点 乱 <div *ngIf="item['COMP ...

最新文章

  1. 安卓端网页浏览过程中实时更新title的web实现
  2. Mac休眠后解决卡死转圈问题
  3. java分解因式_用JAVA因式分解 并以9=3×3格式输出
  4. python绘制动态模拟图-Python实现模拟时钟代码推荐
  5. Oracle高级查询之OVER (PARTITION BY ..)
  6. FFT C语言 修改了matlab
  7. CalendarExtender控件的中文显示问题
  8. 高通量数据中批次效应的鉴定和处理(六)- 直接校正表达矩阵
  9. android代码使用adb,如何使用adb在Android 11上触发BroadcastReceiver?
  10. 12306外包给阿里巴巴、IBM等大企业做是否可行?
  11. azure备份存储层分类_备份到Azure –如何做到这一点?
  12. 【emWin】例程十:bmp图片显示
  13. Jmeter压力测试-微信小程序
  14. 光伏发电极其并网控制技术 最大功率点跟踪
  15. 2021年影响会计人员的十大信息技术榜单出炉,RPA再次登榜
  16. 马蜂窝张矗:我对技术团队绩效考核管理的几点思考
  17. react 最佳入门_详解React-Todos入门例子
  18. 功能强大的截图软件——Snipaste
  19. 所有专业课考c语言的学校,计算机考研哪些学校专业课考408?一共82所院校
  20. 爬虫:爬东方财富网股票数据

热门文章

  1. linux—命令汇总
  2. win7 IIS7环境下部署PHP 7.0
  3. Today is weekend不是应该一定会输出吗
  4. 转载 - 整数划分问题
  5. mac 下终端 操作svn命令 以及出现证书错误的处理方法
  6. 静态与非静态(转改)
  7. 【转】ORACLE中的子查询 ---OCP--047--46
  8. Statement和PreparedStatement之间的区别(转)
  9. tensorflow 安装在Anaconda
  10. 怎么通俗易懂地解释贝叶斯网络和它的应用?