pandas to_excel 添加顏色操作
我就廢話不多說了,大家還是直接看代碼吧~
import pandas as pd
import numpy as np
columns = [['A', 'A', 'B', 'B', 'C'], ['a', 'b', 'c', 'd', 'e']]
# 創(chuàng)建形狀為(10,5) 的DataFrame 并設(shè)置二級標(biāo)題
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: 字典 內(nèi)容是 {標(biāo)題:顏色}
:return:
"""
return df.style.apply(style_apply, colors=colors)
def style_apply(series, colors, back_ground=''):
"""
:param series: 傳過來的數(shù)據(jù)是DataFramt中的一列 類型為pd.Series
:param colors: 內(nèi)容是字典 其中key 為標(biāo)題名 value 為顏色
:param back_ground: 北京顏色
:return:
"""
series_name = series.name[0]
a = list()
# 為了給每一個單元格上色
for col in series:
# 其中 col 為pd.DataFrame 中的 一個小單元格 大家可以根據(jù)不同需求為單元格設(shè)置不同的顏色
# 獲取什么一級標(biāo)題獲取什么顏色
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:
#注意: 二級標(biāo)題的to_excel index 不能為False
style_df.to_excel(writer, sheet_name='sheet_name')
以上就是pandas.DataFrame 二級標(biāo)題to_excel() 添加顏色的demo 大家可以自行根據(jù)不同需求修改
主要注意
style_apply 方法中的內(nèi)容 里面是真正設(shè)置顏色的地方
補(bǔ)充知識:對pandas的dataframe自定義顏色顯示
原始表是這樣,一堆數(shù)字視覺表達(dá)能力很差

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

按照大小對其進(jìn)行不同顏色的填充,視覺表達(dá)能力強(qiáng)了很多。 也可以自定義顏色填充,比如我這里對大于平均值的進(jìn)行顏色填充。
quantity_year.style.applymap(lambda v
: 'background-color: %s' %'#FFCCFF' if v>quantity_year.mean().mean()
else'background-color: %s'% '')
當(dāng)然也可以自己def 更復(fù)雜的功能,都是大同小異。當(dāng)然還有highlight_max(‘color'),highlight_min(‘color')這種高亮最小最大值,也有hide_index()這種隱藏索引的小操作,在這里記錄一下。
以上這篇pandas to_excel 添加顏色操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用APScheduler3.0.1 實現(xiàn)定時任務(wù)的方法
今天小編就為大家分享一篇使用APScheduler3.0.1 實現(xiàn)定時任務(wù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python實現(xiàn)yaml與json文件批量互轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實現(xiàn)yaml與json文件的批量互轉(zhuǎn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手嘗試一下2022-07-07
Python 中的 plt.hist 函數(shù)基本用法詳解
plt.hist 函數(shù)用于繪制直方圖,直方圖是一種用來表示數(shù)據(jù)分布的圖形,它將數(shù)據(jù)分成若干個區(qū)間,然后統(tǒng)計每個區(qū)間中數(shù)據(jù)的數(shù)量,最終以柱狀圖的形式展示出來,這篇文章主要介紹了Python 中的 plt.hist 函數(shù)基本用法詳解,需要的朋友可以參考下2021-04-04
使用Python將PDF轉(zhuǎn)換為文檔的方法實現(xiàn)
要將PDF文件轉(zhuǎn)換為Doc格式,你可以使用 Python 模塊,它將讓你輕松地將 pdf 轉(zhuǎn)換為 doc ,在本文中,我們將探索使用 Python 將 PDF 文檔轉(zhuǎn)換為Doc文件,需要的朋友可以參考下2023-09-09
Ranorex通過Python將報告發(fā)送到郵箱的方法
這篇文章主要介紹了Ranorex通過Python將報告發(fā)送到郵箱的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
Python內(nèi)置函數(shù)memoryview()的實現(xiàn)示例
本文主要介紹了Python內(nèi)置函數(shù)memoryview()的實現(xiàn)示例,它允許你在不復(fù)制其內(nèi)容的情況下操作同一個數(shù)組的不同切片,具有一定的參考價值,感興趣的可以了解一下2024-05-05

