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 正则式使用心得
May 07 Python
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
Jun 09 Python
Python制作简单的网页爬虫
Nov 22 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
python实现定时提取实时日志程序
Jun 22 Python
利用Python校准本地时间的方法教程
Oct 31 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
基于plt.title无法显示中文的快速解决
May 16 Python
通过python-pptx模块操作ppt文件的方法
Dec 26 Python
Python数据分析入门之教你怎么搭建环境
May 13 Python
pytorch中[..., 0]的用法说明
May 20 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 数组的创建、调用和更新实现代码
2009/03/09 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
img标签中onerror用法
2009/08/13 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
Python解决鸡兔同笼问题的方法
2014/12/20 Python
python实现报表自动化详解
2017/11/16 Python
python迭代dict的key和value的方法
2018/07/06 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
你对IPv6了解程度
2016/02/09 面试题
十佳护士获奖感言
2014/02/18 职场文书
初一数学教学反思
2016/02/17 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android