pandas to_excel 添加颜色操作


Posted in Python onJuly 14, 2020

我就废话不多说了,大家还是直接看代码吧~

import pandas as pd
import numpy as np
 
columns = [['A', 'A', 'B', 'B', 'C'], ['a', 'b', 'c', 'd', 'e']]
# 创建形状为(10,5) 的DataFrame 并设置二级标题
demo_df = pd.DataFrame(np.arange(50).reshape(10, 5), columns=columns)
print(demo_df)
 
def style_color(df, colors):
  """
  
  :param df: pd.DataFrame
  :param colors: 字典 内容是 {标题:颜色}
  :return: 
  """
  return df.style.apply(style_apply, colors=colors)
 
def style_apply(series, colors, back_ground=''):
  """
  :param series: 传过来的数据是DataFramt中的一列  类型为pd.Series
  :param colors: 内容是字典 其中key 为标题名  value 为颜色
  :param back_ground: 北京颜色
  :return:
  """
  series_name = series.name[0]
  a = list()
  # 为了给每一个单元格上色
  for col in series:
    # 其中 col 为pd.DataFrame 中的 一个小单元格  大家可以根据不同需求为单元格设置不同的颜色
    # 获取什么一级标题获取什么颜色
    if series_name in colors:
      for title_name in colors:
        if title_name == series_name:
          back_ground = 'background-color: ' + colors[title_name]
          # '; border-left-color: #080808'
    a.append(back_ground)
  return a
 
style_df = style_color(demo_df, {"A": '#1C1C1C', "B": '#00EEEE', "C": '#1A1A1A'})
 
with pd.ExcelWriter('df_style.xlsx', engine='openpyxl') as writer:
  #注意: 二级标题的to_excel index 不能为False
  style_df.to_excel(writer, sheet_name='sheet_name')

以上就是pandas.DataFrame 二级标题to_excel() 添加颜色的demo 大家可以自行根据不同需求修改

主要注意

style_apply 方法中的内容 里面是真正设置颜色的地方

补充知识:对pandas的dataframe自定义颜色显示

原始表是这样,一堆数字视觉表达能力很差

pandas to_excel 添加颜色操作

quantity_year.style.background_gradient(cmap='gray_r')

pandas to_excel 添加颜色操作

按照大小对其进行不同颜色的填充,视觉表达能力强了很多。 也可以自定义颜色填充,比如我这里对大于平均值的进行颜色填充。

quantity_year.style.applymap(lambda v
               : 'background-color: %s' %'#FFCCFF' if v>quantity_year.mean().mean() 
               else'background-color: %s'% '')

当然也可以自己def 更复杂的功能,都是大同小异。当然还有highlight_max(‘color'),highlight_min(‘color')这种高亮最小最大值,也有hide_index()这种隐藏索引的小操作,在这里记录一下。

以上这篇pandas to_excel 添加颜色操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之再深点,更懂list
Sep 20 Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
python如何实现反向迭代
Mar 20 Python
浅析python的优势和不足之处
Nov 20 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
Python Flask框架扩展操作示例
May 03 Python
如何使用Python实现斐波那契数列
Jul 02 Python
Python pandas如何向excel添加数据
May 22 Python
Python数据可视化实现多种图例代码详解
Jul 14 #Python
简单的Python人脸识别系统
Jul 14 #Python
Python局部变量与全局变量区别原理解析
Jul 14 #Python
Python迭代器协议及for循环工作机制详解
Jul 14 #Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 #Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 #Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
Jul 14 #Python
You might like
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
php 中的closure用法详解
2017/06/12 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
js函数般调用正则
2008/04/08 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
python获取url的返回信息方法
2018/12/17 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
公司任命书模板
2014/06/06 职场文书
国际商务专业求职信
2014/07/15 职场文书
质量月活动总结
2014/08/26 职场文书
2014年实习生工作总结
2014/11/27 职场文书