Pandas是一款很强大的Python库,具有很多方便的功能,今天小编就给大家分享用Pandas修改样式。
以下内容转载于早起Python微信公众号。
作者:刘早起
文章来源:早起Python
前言
在之前的很多文章中我们都说过,Pandas与openpyxl有一个很大的区别就是openpyxl可以进行丰富的样式调整,但其实在Pandas中每一个DataFrame都有一个Style属性,我们可以通过修改该属性来给数据添加一些基本的样式。
使用说明
我们可以编写样式函数,并使用CSS来控制不同的样式效果,通过修改Styler对象的属性,将样式传递给DataFrame,主要有两种传递方式
Styler.applymap:逐元素
Styler.apply:列/行/表方式
Styler.applymap通过DataFrame逐个元素地工作。Styler.apply根据axis参数,按列使用axis=0.按行使用axis=1.以及axis=None作用于整个表。所以若使用Styler.applymap,我们的函数应返回带有CSS属性-值对的单个字符串。若使用Styler.apply,我们的函数应返回具有相同形状的Series或DataFrame,其中每个值都是具有CSS属性值对的字符串。
不会CSS?没关系,作为调包侠的我们大多是改改HTML颜色代码即可完成样式修改,下面看一些示例。
一些例子
基本样式
首先我们创建一组没有任何样式的数据
我们之前说过,DataFrame是有style属性的,所以在没有做任何修改的情况下,使用df.style应该和上图一样
现在让我们编写一个简单的样式函数,该函数可以将负数变为红色,使正数保持黑色。
def color_negative_red(val):
color = 'red' if val < 0 else 'black'
return 'color: %s' % color
现在来应用这段函数(思考Excel如何实现)
现在如果我们想突出显示每列中的最大值,需要重新定义一个函数
def highlight_max(s):
is_max = s == s.max()
return ['background-color: yellow' if v else '' for v in is_max]
因为之前我们是以元素为单位判断,所以使用的是.applymap,所以现在我们应对列进行.apply操作
现在可以使用
df.style.applymap(color_negative_red).apply(highlight_max)
来混合修改样式或使用.\实现
当然我们也可以通过修改样式函数并使用.apply来高亮整个DataFrame的最大值,
切片
当然我们也可以使用subset通过切片来完成对指定列进行样式修改,比如高亮部分列的最大值
df.style.apply(highlight_max, subset=['B', 'C', 'D'])
对于行和列切片,可以使用我们熟悉的.loc,不过目前仅支持基于标签的切片,不支持位置切片。
格式化输出
我们也可以使用Styler.format来快速格式化输出,比如将小数格式化为百分数
也支持使用字典或lambda表达式来更灵活的使用
当然是支持和之前的样式结合使用
内置样式
开发者们为了尽可能的让作为调包侠的我们使用起来更方便,已经内置了很多写好的样式,拿走就用,比如将空值设置为红色
或是结合seaborn使用热力图
现在我们就可以通过修改Styler.background_gradient来轻松的修改颜色等样式
最后我们可以将数据修改为条形图的样式,这也是我最喜欢的一个功能,能够快速的看出数据的变化!
在最新的版本中可以进一步自定义条形图:我们现在可以将df.style.bar以零或中点值为中心来快速观察数据变化,并可以传递颜色[color_negative, color_positive],比如使用align='mid':
以上就是对Pandas中如何修改样式的一个简单介绍,更多的操作可以在官方文档https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html中找到与学习。
数据分析咨询请扫描二维码
数据挖掘是现代企业利用数据驱动决策的重要工具。它涉及从大量数据中提取隐藏的、先前未知但潜在有用的信息,依托人工智能、机器 ...
2024-10-23在当前数据驱动的商业环境中,数据分析师的角色变得越来越重要。想要踏入这一领域并取得成功,不仅需要扎实的技术基础,还需要不 ...
2024-10-23数据分析是一个广泛而又精细的领域,它结合了统计学、计算机科学、商业策略以及数据科学等多个学科的知识。这个领域日新月异的发 ...
2024-10-23在现代企业中,数字化管理师扮演着至关重要的角色。他们不仅帮助企业优化资源配置,还推动企业的数字化转型。要成为一名合格的数 ...
2024-10-23大数据专业是一个跨学科的领域,涵盖了数学、统计学、计算机科学与技术等多个学科。随着数据在各个行业中的重要性日益增加,大数 ...
2024-10-23大数据分析师培训教程-2.1 Hadoop入门-Hadoop 1.0 的局限与 Hadoop 2.0(YARN)的革新 Hadoop简介Hadoop 的生态系统HDFS 的原理 ...
2024-10-232024,您是否渴望在数据领域探索更广阔的职业机遇? 数字化时代,数据量级每年都在呈指数级增长。据统计,全球互联网用户每天产 ...
2024-10-21数据科学专业是一门跨学科的综合性学科,涵盖了数学、统计学、计算机科学等多个领域。其核心目标是通过数据的收集、处理和分析来 ...
2024-10-21Python是一种高级解释性编程语言,由Guido van Rossum于1991年创造。凭借其简单易学、代码可读性强和功能强大的特点,Python已经 ...
2024-10-21在当今数据驱动的世界中,选择学习Hadoop已成为许多数据分析师和IT专业人士的必修课。Hadoop不仅是大数据处理领域的核心技术之一 ...
2024-10-21数据开发工程师在当今数据驱动的世界中扮演着至关重要的角色。他们不仅负责数据的采集和处理,还在数据仓库建设、系统开发和数据 ...
2024-10-20在当今快速变化的数字经济时代,数字化转型已经成为企业实现持续增长和竞争优势的关键。数字化转型不仅仅是技术的变革,更是组织 ...
2024-10-19在当今快速发展的科技时代,数字经济已成为全球经济的重要组成部分。选择数字经济专业,不仅能为你打开通往多个行业的大门,还能 ...
2024-10-18学习统计学与大数据分析具有显著的优势,能够帮助你走向高薪岗位。在数字化时代背景下,统计学和大数据分析展现出强大的就业潜力 ...
2024-10-18在当今的数字时代,数据科学与大数据技术专业的就业方向极为广泛,涵盖了多个领域和岗位。随着数据成为企业决策的重要依据,行业 ...
2024-10-18大数据技术与应用领域正在迅速发展,成为现代经济和科技发展的重要驱动力。随着数据量的爆炸式增长,各行各业对大数据专业人才的 ...
2024-10-18在当今数据驱动的商业环境中,数据分析软件已成为企业决策过程中不可或缺的工具。随着数据量的激增和分析需求的复杂化,选择合适 ...
2024-10-18在当今数据驱动的世界中,数据分析已成为许多行业不可或缺的一部分。无论是企业决策、市场营销,还是产品开发,数据分析都能提 ...
2024-10-18数据分析在现代企业中扮演着至关重要的角色,帮助企业在竞争激烈的市场中做出明智的决策。随着数据量的不断增长,企业需要依赖先 ...
2024-10-18CDA(Certified Data Analyst)认证在数据分析领域具有显著的作用,具体包括以下几个方面: 1. 专业技能认可 CDA认证是数据分析 ...
2024-10-17