pandas to_excel 添加颜色操作

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

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自定义颜色显示

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

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

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

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 添加颜色操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python pandas如何向excel添加数据

    pandas读取.写入csv数据非常方便,但是有时希望通过excel画个简单的图表看一下数据质量.变化趋势并保存,这时候csv格式的数据就略显不便,因此尝试直接将数据写入excel文件. pandas可以写入一个或者工作簿,两种方法介绍如下: 1.如果是将整个DafaFrame写入excel,则调用to_excel()方法即可实现,示例代码如下: # output为要保存的Dataframe output.to_excel('保存路径 + 文件名.xlsx') 2.有多个数据需要写入多个exce

  • Python3使用pandas模块读写excel操作示例

    本文实例讲述了Python3使用pandas模块读写excel操作.分享给大家供大家参考,具体如下: 前言 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具,能使我们快速便捷地处理数据.本文介绍如何用pandas读写excel. 1. 读取excel 读取excel主要通过read_excel函数实现,除了pandas

  • Python openpyxl读取单元格字体颜色过程解析

    问题 我试图打印some_cell.font.color.rgb并得到各种结果. 对于一些人,我得到了我想要的东西(比如" FF000000"),但对于其他人,它给了我Value must be type 'basetring'.我假设后者是因为我实际上没有为这些单元格定义字体颜色. 我正在使用openpyxl 2.2.2 解决方案 我认为这是openpyxl中的一个错误,我认为你应该在这里报告. 调试以下代码(当然使用trepan3k): from openpyxl import W

  • python xlwt如何设置单元格的自定义背景颜色

    问题 我使用python 2.7和xlwt模块进行excel导出 我想设置我知道可以使用的单元格的背景颜色 style1 = xlwt.easyxf('pattern: pattern solid, fore_colour red;') 但我想设置自定义颜色smth.比如#8a8eef或者是否有可能颜色的调色板,因为浅蓝色不起作用:) 解决方案 如果你没有使用easyxf()而是XFStyle逐步构建对象,这是使用用户友好颜色名称的另一种方法: import xlwt style = xlwt.

  • pandas to_excel 添加颜色操作

    我就废话不多说了,大家还是直接看代码吧~ 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 sty

  • vue项目中使用bpmn为节点添加颜色的方法

    内容概述 bpmn是比较方便的绘制流程图的插件,官方demo https://github.com/bpmn-io/bpmn-js-examples 本文主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下. 前情提要 上文我们已经实现了在外部更改节点名.此时又有新玩法:在流程图中,根据节点状态为其标记不同颜色.例如:已完成:黄色,正在进行:绿色,本次我们通过两种方式来实现该需求.效果: 方式1:modeling.setColo

  • python实现xlwt xlrd 指定条件给excel行添加颜色

    先用xlrd读excel文件-->book对象a 拿到指定的sheet页 xlrd对象 用xlutils copy 的copy方法复制 a得到b 通过判断a的列值,来修改b 保存b 得到结果 之前也有试过直接用xlwt 来操作sheetwork对象,来实现给指定行添加颜色的操作,由于能力有限,最终没有找到合适的方法,最终换了个方法 先读出来,因为workbook对象可以拿到行数 和对列操作,筛选关键字比较方便,所以上边代码就是一个demo,但是这个方法还是有弊端的,我把dataframe导出到e

  • Vue实现背景更换颜色操作

    如下所示: <!-- 分页上下页改变背景图效果 --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <link rel="stylesh

  • Python pandas对excel的操作实现示例

    最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Column) 的处理方法.示例数据请通过明哥的gitee进行下载. 增加计算列 pandas 的 DataFrame,每一行或每一列都是一个序列 (Series).比如: import pandas as pd df1 = pd.read_excel('./excel-comp-data.xlsx');

  • Pandas高级教程之Pandas中的GroupBy操作

    目录 简介 分割数据 多index get_group dropna groups属性 index的层级 group的遍历 聚合操作 通用聚合方法 可以同时指定多个聚合方法: NamedAgg 不同的列指定不同的聚合方法 转换操作 过滤操作 Apply操作 简介 pandas中的DF数据类型可以像数据库表格一样进行groupby操作.通常来说groupby操作可以分为三部分:分割数据,应用变换和和合并数据. 本文将会详细讲解Pandas中的groupby操作. 分割数据 分割数据的目的是将DF分

  • 分享20个Pandas短小精悍的数据操作

    目录 1. ExcelWriter 2. pipe 3. factorize 4. explode 5. squeeze 6. between 7. T 8. pandas styler 9. Pandas options 10. convert_dtypes 11. select_dtypes 12. mask 13. 列轴的min.max 14. nlargest.nsmallest 15. idmax.idxmin 16. value_counts 17. clip 18. at_time

  • ubuntu下Matlab_Linux添加工具包操作步骤

    以下以rvctools为例 具体操作如下: 1. 先将下载好的压缩包(robot-9.10.zip)解压,得到工具包rvctools 2. 将该工具包复制到MATLAB下的toolbox文件夹内,一般是无法将工具包复制进去的,需要添加授权 ① 先进入到以下路径/usr/local/MATLAB/R2017a ② 在terminal中输入sudo chmod 777 toolbox ③ 此时就可以将工具包rvctools放进toolbox里面了 3.跟着打开MALTAB,找到set path,设置

  • python实现在pandas.DataFrame添加一行

    实例如下所示: from pandas import * from random import * df = DataFrame(columns=('lib', 'qty1', 'qty2'))#生成空的pandas表 for i in range(5):#插入一行<span id="transmark" style="display:none;"></span> df.loc[i] = [randint(-1,1) for n in ran

随机推荐