再见,Excel!一行Pandas代码,即可实现漂亮的 “条件格式”!

Python中文社区

共 1446字,需浏览 3分钟

 ·

2021-01-16 19:52

本文概述

Pandas 是数据科学家做数据处理时,使用最多的工具。

对比Excel,我们可以发现:Pandas基本可以实现所有的Excel的功能,并且比Excel更方便、简洁,其实很多操作我们在过去的文章中,或多或少都讲述过。

但是在数据框上,完成各种 “条件格式” 的设置,帮助我们更加凸显数据,使得数据的展示更加美观,今天还是头一次讲述。

上图左表展示的是某班级期末考试的成绩数据,我们要利用左表完成如右表的效果展示,需要完成的目标如下:

  • (1)将“均值”这一列的数值,保留1位小数;
  • (2)给这份数据,添加一个标题辅助说明“高三(5)班期末考试成绩”,方便我们区分数据;
  • (3)隐藏索引列(注意最左边!);
  • (4)隐藏指定列,有些列我们不作处理,可以不做展示;
  • (5)将“语文”这一列的数值,依数值大小画条状图;
  • (6)将“均值”这一列数据最大的值,高亮(highlight)展示;
  • (7)将“数学”这一列的数值,依数值画一个绿色的colormap;
  • (8)将整个DataFrame 的空值显示为红色,着重突出;

一行代码即可上述所有操作

用过Pyecharts的朋友可能都知道“链式规则”,在这里我们同样可以采用这种方法,用一行代码就可以实现上述所有的功能。

1. 读取数据

import pandas as pd

df = pd.read_excel("特殊.xlsx")
df.index = list(range(df.shape[0]))
df

结果如下:

2. 一行代码

df.style.format('{:.1f}',subset='均值').set_caption('高三(5)班期末考试成绩').\
hide_index().hide_columns(['索引']).bar('语文',vmin=0).highlight_max('均值').\
background_gradient('Greens',subset='数学').highlight_null()

结果如下:

使用说明

这个是Pandas0.17.1中的新功能。官方文档中说到:这是一项新功能,正在积极开发中。我们将添加功能,并可能在将来的版本中进行重大更改。

这个方法出现在pandas.formats.style.Styler类中,今天在这里就不详细介绍该方法的原理,大家知道怎么使用就行,后将在后面的文章中为大家慢慢介绍。

上面我们直接一行代码实现所有的功能,如果我们只想实现某一个功能怎么办呢?

  • df.style.format( )
  • df.style.set_caption( )
  • df.style.hide_index( )
  • df.style.hide_columns( )
  • df.style.bar( )
  • df.style.highlight_max( )
  • df.style.background_gradient( )
  • df.style.highlight_null( )

好了,今天就为大家介绍到这里,赶紧下去尝试吧!


更多阅读



2020 年最佳流行 Python 库 Top 10


2020 Python中文社区热门文章 Top 10


Top 10 沙雕又有趣的 GitHub 程序

特别推荐




点击下方阅读原文加入社区会员

浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报