乐于分享
好东西不私藏

【从零开始学excel办公自动化】第十八课:这个pandas输出Excel 怎么能高亮显示数据呢?方老师给这个例子你就会了

【从零开始学excel办公自动化】第十八课:这个pandas输出Excel 怎么能高亮显示数据呢?方老师给这个例子你就会了

10年青少年编程教育经验 | 资深Python专家

前大厂技术总监 | 现编程教育创业者

专注青少年编程教育技能提升

大家好,我是浩浩学编程的方老师,这是excel办公自动化系列的第18课。

今日技能

📱 一文给大家快速掌握pandas数据处理后,导出的excel列高亮显示

前面,我们学习了通过pandas来处理输出excel的格式的基本用法,今天主要通过实例来加深一下如何使用这个style能力。

让excel中的数据高亮显示

需求:在费用报表中,将超支的金额标红,节约的金额标绿,正常的金额不变,同时也设置不同颜色来处理比例。

也不多说,直接先上代码,我们先准备下基础数据。

一、准备基础数据

import pandas as pdimport numpy as np# 创建示例数据data = {    '部门': ['研发部''市场部''财务部''人事部''运营部'],    '预算': [5000030000200001500025000],    '实际支出': [5500028000220001400030000],    '差额': [5000, -20002000, -10005000],    '超支比例': [0.10, -0.070.10, -0.070.20]}df = pd.DataFrame(data)

如果用excel先做一个模拟数据,然后再通过read_excel读取也一样。

这样我们就得到一个pandas的数据集: df。

二、准备样式方法

这里我们定义了两个方法

1、差额的体现

# 定义差额颜色样式def highlight_diff(val):    if val > 0:        return 'background-color: #ffcccc;             color: red; font-weight: bold'    elif val < 0:        return 'background-color: #ccffcc;               color: green; font-weight: bold'    return ''

判断逻辑:计算差额大于0,显示红色,小于0的绿色。

2、比例的体现

# 定义超支比例样式def highlight_ratio(val):    if val > 0.1:        return 'color: red; font-weight: bold'    elif val > 0:        return 'color: orange'    else:        return 'color: green'

这个大家能看懂吧,不太清楚的,可以留言。

三、实际应用

# 应用样式styled_df = df.style \    .applymap(highlight_diff, subset=['差额']) \    .applymap(highlight_ratio, subset=['超支比例']) \    .format({        '预算''¥{:,.0f}',        '实际支出''¥{:,.0f}',        '差额''¥{:,.0f}',        '超支比例''{:.2%}'    }) \    .set_table_styles([        {'selector''th''props': [            ('background-color''#4a90e2'),            ('color''white'),            ('font-weight''bold'),            ('padding''8px'),            ('text-align''center')        ]},        {'selector''td''props': [            ('padding''6px'),            ('border''1px solid #ddd')        ]}    ]) \    .set_caption('部门费用报表 - 超支分析')# 保存为Excelstyled_df.to_excel('费用报表_格式化.xlsx',             engine='openpyxl', index=False)print("格式化完成!文件已保存为:费用报表_格式化.xlsx")

效果:

  • 超支的差额显示为红色背景

  • 节约的差额显示为绿色背景

  • 超支比例超过 10% 显示为红色粗体

  • 0-10% 的超支显示为橙色

  • 节约的显示为绿色

写在最后

这是pandas的style组件的第一个实用场景:高亮显示需要标注的数据

记住这个格式转换三步走

  1. 定义格式函数
     —— 用if + css 代码
  2. 调用格式函数
     —— 用df.style.applymap()来应用函数到每一列
  3. 最后再美化一下表格(可省略)
     —— 用.set_table_styles 来处理

试试效果怎么样?评论区聊聊~

🎉 同学们,看到这里,你学会了吗!

方老师说:

🚀 现在屏幕前的你已经比90%的同龄人领先一步了!

接下来可以:

  • 介绍一下pandas输出excel中怎么带进度条(下期教程教!)

  • ⚠️ 遇到问题?评论区甩截图,方老师尽量在24小时内回复

如果这篇文章对你有帮助,记得点个「推荐」,转发给还在用Excel加班的同事!

#python #Pandas #数据分析 #浩浩学编程 #职场技能 

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 【从零开始学excel办公自动化】第十八课:这个pandas输出Excel 怎么能高亮显示数据呢?方老师给这个例子你就会了

猜你喜欢

  • 暂无文章