上一篇介绍了DataFrame的显示参数,主要是对DataFrame中值进行调整。

本篇介绍DataFrame的显示样式的调整,显示样式主要是对表格本身的调整,
比如颜色,通过颜色可以突出显示重要的值,观察数据时可以更加高效的获取主要信息。

下面介绍一些针对单个数据和批量数据的样式调整方式,让DataFrame的数据信息更加的一目了然。

1. 多列显示格式

每个DataFrame都有个style属性,通过这个属性可以来调整显示的样式。
下面的示例,一次调整多个类型的列的显示。

import pandas as pd

df = pd.DataFrame(
{
"日期": ["2022-10-01", "2022-11-11",
"2022-12-12", "2023-01-01", "2023-02-02"],
"单价": [1099.5, 8790.0, 12.55, 10999.0, 999.5],
"数量": [1, 3, 1200, 4, 5],
}
) df["日期"] = pd.to_datetime(df["日期"]) col_format = {
"日期": "{:%Y/%m/%d}",
"单价": "¥{:,.2f}",
"数量": "{:,} 件"
}
df.style.format(col_format)


调整之后:

  1. 日期格式改成用/来分割
  2. 单价前加了人民币符号,并且用逗号作为千位分隔符
  3. 数量用逗号作为千位分隔符,加了单位 件

调整之后,表格中的内容放入报告中会更加美观。

2. 背景色样式

除了调整数值的显示样式,更强大的功能是,我们可以调整单元格的颜色。

比如,下面的数据,我们先计算出总价,
然后用红色背景标记出总价最小的订单,用绿色背景标记出总价最大的订单。

df = pd.DataFrame(
{
"订单号": ["0001", "0002",
"0003", "0004", "0005"],
"单价": [1099.5, 8790.0,
12.55, 10999.0, 999.5],
"数量": [1, 3, 1200, 4, 5],
}
) df["总价"] = df["单价"] * df["数量"]
col_format = {
"单价": "¥{:,.2f}",
"总价": "¥{:,.2f}",
} df.style.format(col_format).highlight_min(
"总价", color="red"
).highlight_max(
"总价", color="lightgreen"
)

3. 渐变色样式

添加背景色之后,只能看出哪个订单总价最高,哪个订单总价最低。
对于其他的订单,没有直观的印象,所以,下面我们更进一步用渐变色来标记总价列。

总价越高,背景色越深,这样就对所有订单的总价有了直观的印象。

df = pd.DataFrame(
{
"订单号": ["0001", "0002", "0003", "0004", "0005"],
"单价": [1099.5, 8790.0, 12.55, 10999.0, 999.5],
"数量": [1, 3, 1200, 4, 5],
}
) df["总价"] = df["单价"] * df["数量"]
col_format = {
"单价": "¥{:,.2f}",
"总价": "¥{:,.2f}",
}
df.style.format(
col_format
).background_gradient(
subset="总价", cmap="Greens"
)

4. 条形图样式

再进一步,用条形图+渐变色的方式显示总价信息。
这样,不仅可以看出总价的高低,还能大致看出究竟高了多少。

df = pd.DataFrame(
{
"订单号": ["0001", "0002", "0003", "0004", "0005"],
"单价": [1099.5, 8790.0, 12.55, 10999.0, 999.5],
"数量": [1, 3, 1200, 4, 5],
}
) df["总价"] = df["单价"] * df["数量"] col_format = {
"单价": "¥{:,.2f}",
"总价": "¥{:,.2f}",
}
df.style.format(
col_format
).bar(
subset="总价", cmap="Wistia"
)

5. 总结回顾

通过pandas本身的样式参数,可以美化分析的结果,直接用于最后的报告或者PPT中。

pandas小技巧系统至此暂时告一段落,接下来,准备开始另一个关键的数据分析库:numpy。

【pandas小技巧】--DataFrame的显示样式的更多相关文章

  1. css的一些小技巧。修改input样式

    在第一次正式写项目的时候,遇到了几个布局的小技巧.记录一下. 我们常常会遇到图片和文字对齐的一种样式.比如 这样的样式,我们写的时候有时候会出现不对齐的情况.我们有俩种方法 一种就是flex的布局,还 ...

  2. 【Python学习】解决pandas中打印DataFrame行列显示不全的问题

    在使用pandas的DataFrame打印时,如果表太长或者太宽会自动只给前后一些行列,但有时候因为一些需要,可能想看到所有的行列. 所以只需要加一下的代码就行了. #显示所有列 pd.set_opt ...

  3. pandas小技巧

    1. 删除列 import pandas as pd df.drop("Unnamed: 0", axis=1, inplace=True) 2. 转换列的格式 df[" ...

  4. php练习7——类的运用(四则运算or面积计算[javascript小技巧——根据需求显示不同界面])

    要求:请编写一个类,该类可以进行四则运算,也可以进行矩形面积计算 1.程序 viewCount.html  Count.class.php      printCount.php 2.结果      ...

  5. pandas 小技巧

    1.找出某个字段包含某字符串的行: my_df[my_df['col_B'].str.contains('大连') > 0]或者 my_df[my_df['col_B'].apply(lambd ...

  6. 【js】中的小技巧

    本文主要介绍一些JS中用到的小技巧 1. 类型强制转换   1.1 string强制转换为数字 可以用*1来转化为数字(实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为 ...

  7. 可以提升幸福感的js小技巧(下)

    4.数字 4.1 不同进制表示法 ES6中新增了不同进制的书写格式,在后台传参的时候要注意这一点. 29 // 10进制 035 // 8进制29 原来的方式 0o35 // 8进制29 ES6的方式 ...

  8. IDEA的小技巧:1.Java代码不被识别2.目录下创建的文件夹所显示样式不是文件夹,而是"包"图标样式的问题

    在Idea上面一个正常的代码结构是这个样子的,但是有的时候,比如说当我们直接在一个文件夹中随便的创建的时候就会出现一些问题,比如说想让某个地方为代码目录,某个地方为资源目录的时候,直接的创建目录是不成 ...

  9. css学习の第六弹—样式设置小技巧

    一.css样式设置小技巧>>1.行内元素水平居中是通过给父元素设置 text-align:center 来实现的.html代码:<body> <div class=&qu ...

  10. Pandas一些小技巧

    Pandas有一些不频繁使用容易忘记的小技巧 1.将不同Dataframe写在一个Excel的不同Sheet,或添加到已有Excel的不同Sheet(同名Sheet会覆盖) from pandas i ...

随机推荐

  1. vue全家桶进阶之路45:Vue3 Element Plus el_button组件

    在 Vue 3 中,Element Plus 的 ElButton 组件提供了多种按钮类型和属性,可以用于实现不同的交互效果.下面是 ElButton 常用的作用和属性: 作用: 用于在页面上添加交互 ...

  2. 2023-05-16:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。 请你找到这个数组里第 k 个缺失的正整数。 输入:arr = [2,3,4,7,11], k = 5。 输出:9

    2023-05-16:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k . 请你找到这个数组里第 k 个缺失的正整数. 输入:arr = [2,3,4,7,11], k = 5. 输出:9 ...

  3. Elasticsearch与Clickhouse数据存储对比

    1 背景 京喜达技术部在社区团购场景下采用JDQ+Flink+Elasticsearch架构来打造实时数据报表.随着业务的发展Elasticsearch开始暴露出一些弊端,不适合大批量的数据查询,高频 ...

  4. vue 中render执行流程梳理

    用了多年vue 今天对自己了解的render 做一个梳理 一.使用template模板 先从vue 初始化开始: 众所周知项目的main.js中定义了 var app = new Vue({})这vu ...

  5. 最通俗易懂的flex讲解

    30分钟彻底弄懂flex布局 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由elson发表于云+社区专栏 目前在不考虑IE以及低端安卓机(4.3-)的兼容下,已经可以放心使用fle ...

  6. 【Haxe】(二)字符串与变量的输入输出

    前言 每次学习一门新语言,各种手册和教程一上来就是讲变量如何定义,数据结构怎么用,很少有讲输入输出应该怎么写的.我比较喜欢先搞懂这部分,这让我感觉像是掌握了学习主动权,很能调动我的学习积极性.于是我的 ...

  7. SQL Sever 基础语法(增)

    SQL Sever  插入(Insert)基础语法详解 在SQL中,向表中插入数据是最基础的,任何对数据处理的基础就是数据库有数据,对于SQL而言,向表中插入数据有多种方法,本文列举3种: (一) 标 ...

  8. LSP协议被劫持,导致无法上网

    QQ无法登录,网页打不开 用火绒的断网修复 说已经修复了 结果屁用没有 然后找的百度经验 管理员打开命令行窗口 输入 netsh winsock reset catalog 重启即生效

  9. Web网页音视频通话之Webrtc相关操作(一)

    目录 打开摄像头/关闭摄像头 静音/解除静音 打开视频/关闭视频 截图且下载 打开摄像头/关闭摄像头 效果图 HTML <!DOCTYPE html> <html lang=&quo ...

  10. 用googletest写cpp单测

    框架概述 Google Test(也称为 googletest)是由 Google 开发的 C++ 单元测试框架.它的首个版本是在2004年发布的,作为 Google 内部的测试框架使用.随后,Goo ...