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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多层感知机 深度神经网络_使用深度神经网络和合同感知损失的能源产量预测...

多层感知机 深度神经网络in collaboration with Hsu Chung Chuan, Lin Min Htoo, and Quah Jia Yong.与许忠传&#xff0c;林敏涛和华佳勇合作。 1. Introduction1.简介 Since the early 1990s, several countries, mostly in the European Union and North America, had sta…

蓝牙调试工具如何使用_使用此有价值的工具改进您的蓝牙项目:第2部分!

蓝牙调试工具如何使用This post is originally from www.jaredwolff.com. 这篇文章最初来自www.jaredwolff.com。 This is Part 2 of configuring your own Bluetooth Low Energy Service using a Nordic NRF52 series processor. If you haven’t seen Part 1 go back and ch…

使用Matplotlib Numpy Pandas构想泰坦尼克号高潮

Did you know, a novel predicted the Titanic sinking 14 years previously to the actual disaster???您知道吗&#xff0c;一本小说预言泰坦尼克号在14年前沉没到了真正的灾难中&#xff1f;&#xff1f;&#xff1f; In 1898 (14 years before the Titanic sank), Amer…

pca数学推导_PCA背后的统计和数学概念

pca数学推导As I promised in the previous article, Principal Component Analysis (PCA) with Scikit-learn, today, I’ll discuss the mathematics behind the principal component analysis by manually executing the algorithm using the powerful numpy and pandas lib…

红黑树分析

红黑树的性质&#xff1a; 性质1&#xff1a;每个节点要么是黑色&#xff0c;要么是红色。 性质2&#xff1a;根节点是黑色。性质3&#xff1a;每个叶子节点&#xff08;NIL&#xff09;是黑色。性质4&#xff1a;每个红色节点的两个子节点一定都是黑色。不能有两个红色节点相…

overlay 如何实现跨主机通信?- 每天5分钟玩转 Docker 容器技术(52)

上一节我们在 host1 中运行了容器 bbox1&#xff0c;今天将详细讨论 overlay 网络跨主机通信的原理。 在 host2 中运行容器 bbox2&#xff1a; bbox2 IP 为 10.0.0.3&#xff0c;可以直接 ping bbox1&#xff1a; 可见 overlay 网络中的容器可以直接通信&#xff0c;同时 docke…

Python:实现图片裁剪的两种方式——Pillow和OpenCV

原文&#xff1a;https://blog.csdn.net/hfutdog/article/details/82351549 在这篇文章里我们聊一下Python实现图片裁剪的两种方式&#xff0c;一种利用了Pillow&#xff0c;还有一种利用了OpenCV。两种方式都需要简单的几行代码&#xff0c;这可能也就是现在Python那么流行的原…

鼠标移动到ul图片会摆动_我们可以从摆动时序分析中学到的三件事

鼠标移动到ul图片会摆动An opportunity for a new kind of analysis of Major League Baseball data may be upon us soon. Here’s how we can prepare.不久之后&#xff0c;我们将有机会对美国职棒大联盟数据进行新的分析。 这是我们准备的方法。 It is tempting to think t…

回到网易后开源APM技术选型与实战

篇幅一&#xff1a;APM基础篇\\1、什么是APM?\\APM&#xff0c;全称&#xff1a;Application Performance Management &#xff0c;目前市面的系统基本都是参考Google的Dapper&#xff08;大规模分布式系统的跟踪系统&#xff09;来做的&#xff0c;翻译传送门《google的Dappe…

如何选择优化算法遗传算法_用遗传算法优化垃圾收集策略

如何选择优化算法遗传算法Genetic Algorithms are a family of optimisation techniques that loosely resemble evolutionary processes in nature. It may be a crude analogy, but if you squint your eyes, Darwin’s Natural Selection does roughly resemble an optimisa…

PullToRefreshListView中嵌套ViewPager滑动冲突的解决

PullToRefreshListView中嵌套ViewPager滑动冲突的解决 最近恰好遇到PullToRefreshListView中需要嵌套ViewPager的情况,ViewPager 作为头部添加到ListView中&#xff0c;发先ViewPager在滑动过程中流畅性太差几乎很难左右滑动。在网上也看了很多大神的介绍&#xff0c;看了ViewP…

神经网络 卷积神经网络_如何愚弄神经网络?

神经网络 卷积神经网络Imagine you’re in the year 2050 and you’re on your way to work in a self-driving car (probably). Suddenly, you realize your car is cruising at 100KMPH on a busy road after passing through a cross lane and you don’t know why.想象一下…

数据特征分析-分布分析

分布分析用于研究数据的分布特征&#xff0c;常用分析方法&#xff1a; 1、极差 2、频率分布 3、分组组距及组数 df pd.DataFrame({编码:[001,002,003,004,005,006,007,008,009,010,011,012,013,014,015],\小区:[A村,B村,C村,D村,E村,A村,B村,C村,D村,E村,A村,B村,C村,D村,E村…

如何在Pandas中使用Excel文件

From what I have seen so far, CSV seems to be the most popular format to store data among data scientists. And that’s understandable, it gets the job done and it’s a quite simple format; in Python, even without any library, one can build a simple CSV par…

数据特征分析-对比分析

对比分析是对两个互相联系的指标进行比较。 绝对数比较(相减)&#xff1a;指标在量级上不能差别过大&#xff0c;常用折线图、柱状图 相对数比较(相除)&#xff1a;结构分析、比例分析、空间比较分析、动态对比分析 df pd.DataFrame(np.random.rand(30,2)*1000,columns[A_sale…

Linux基线合规检查中各文件的作用及配置脚本

1./etc/motd 操作&#xff1a;echo " Authorized users only. All activity may be monitored and reported " > /etc/motd 效果&#xff1a;telnet和ssh登录后的输出信息 2. /etc/issue和/etc/issue.net 操作&#xff1a;echo " Authorized users only. All…

tableau使用_使用Tableau升级Kaplan-Meier曲线

tableau使用In a previous article, I showed how we can create the Kaplan-Meier curves using Python. As much as I love Python and writing code, there might be some alternative approaches with their unique set of benefits. Enter Tableau!在上一篇文章中 &#x…

Nexus3.x.x上传第三方jar

exus3.x.x上传第三方jar&#xff1a; 1. create repository 选择maven2(hosted)&#xff0c;说明&#xff1a; proxy&#xff1a;即你可以设置代理&#xff0c;设置了代理之后&#xff0c;在你的nexus中找不到的依赖就会去配置的代理的地址中找hosted&#xff1a;你可以上传你自…

责备的近义词_考试结果危机:我们应该责备算法吗?

责备的近义词I’ve been considering writing on the topic of algorithms for a little while, but with the Exam Results Fiasco dominating the headline news in the UK during the past week, I felt that now is the time to look more closely into the subject.我一直…

c/c++编译器的安装

MinGW(Minimalist GNU For Windows)是个精简的Windows平台C/C、ADA及Fortran编译器&#xff0c;相比Cygwin而言&#xff0c;体积要小很多&#xff0c;使用较为方便。 MinGW最大的特点就是编译出来的可执行文件能够独立在Windows上运行。 MinGW的组成&#xff1a; 编译器(支持C、…