企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

数分必会python点 pandas学习excel美化图表

wudianyun 2025-05-24 17:37:46 精选文章 3 ℃

大家好,我是数据小郑。

本篇是数分必会python点 系列的第二篇:pandas学习excel美化图表。

系列内容,请看【数分必会python点】话题,订阅后文章更新可第一时间推送至订阅号。


数分工作者在python的工具使用上,pandas包肯定是天天都用。本文分享使用pandas实现excel对于表格的条件格式控制。excel中的条件格式在日常指标监控中真的是不可或缺,我可以斩钉截铁的说我做的每一张报表都离不开条件格式,它是我日常工作的不可或缺。

一、突出显示单元格

如下图,我们通过突出显示单元格的设置,一眼就能看到低于和高于均值的月份,定位绩优月份和非绩优月份。

那么pandas是如何实现的呢?代码和效果图如下:

def highlight_mean(s):
    is_max = s > s.mean()
    return ['background-color: pink' if v else '' for v in is_max]
df1.style.apply(highlight_mean,subset=['销售一区'])

当然我们也可以将数字标注颜色,那么pandas是如何实现的呢?代码和效果图如下:

def color_negative_red(val):
    """
    Takes a scalar and returns a string with
    the css property `'color: red'` for negative
    strings, black otherwise.
    """
    color = 'red' if val < 426692 else 'black'
    return 'color: %s' % color
    
    s = df1.style.applymap(color_negative_red,subset=['销售一区'])


二、色阶

当我们对销售一区的业绩做个色阶显示,这样业绩的高低点差距就显示出来了。


那么pandas如何实现呢?代码和效果图如下:

cm = sns.diverging_palette(10,250,sep=50,as_cmap=True)
#cm=sns.light_palette("yellow",as_cmap=True)
df1.style.background_gradient(cmap=cm,subset=['销售一区'])

三、数据条

当我们对销售一区的业绩做个数据条显示,这样业绩的高低点差距也会清楚直观显示出来,对于数据条和色阶的选择取决于个人喜好和图表美观度。

那么pandas如何实现呢?代码和效果图如下:

df1.style.bar(subset=['销售一区'],color="#FFA500")

三、百分比的显示

在excel中对于小数的百分比显示只需要点击 数字 百分号图标即可。


那么pandas如何实现呢?代码和效果图如下:

df1.style.format("{:.2%}",subset=['平均占比'])


四、缺失值的标记

在excel中对于缺失值仅仅留白即可。但是在python中会显示NAN,如下图,数分报表对于缺失值常用的方法有2种,一是用"-"符号替代,二是高亮显示。代码和效果图如下:

df1.style.highlight_null(null_color='red')
df1.style.format(None,na_rep="-")


五、style保存至excel

利用pandas实现excel的条件格式操作之后我们需要将结果样式导出,

代码如下:

df1.style.background_gradient(cmap='viridis',subset=['销售一区']).\
to_excel("result.xlsx",engine='openpyx



原创不易,欢迎点赞、留言、分享,支持我继续写下去。

我是数据小郑,最近正在原创【数分必会python点】系列话题,欢迎订阅。订阅后,文章更新第一时间推送至订阅号,每篇文章不错过。

Tags:

最近发表
标签列表