You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何结合Python两段代码,标记Excel指定列中前三数据为红色?

实现Excel中指定列前三大数据(含并列)的红色标记

实现思路

  1. 用pandas读取Excel文件,筛选出AAA列前三大(含并列)的数据行,记录这些行的位置
  2. 用openpyxl打开原Excel文件,定位到对应行的AAA列单元格,将字体设置为红色

完整代码

import pandas as pd
import openpyxl
from openpyxl.styles import Font

# 第一步:用pandas筛选目标行
df = pd.read_excel('test.xlsx')
# 获取AAA列前三大(含并列)的数据行
top_rows = df.nlargest(3, 'AAA', keep='all')
# 转换为Excel行号(pandas索引从0开始,Excel行号从1开始)
target_row_nums = top_rows.index + 1
# 转换为Excel列号(pandas列索引从0开始,Excel列号从1开始)
aaa_col_num = df.columns.get_loc('AAA') + 1

# 第二步:用openpyxl设置字体颜色
wb = openpyxl.load_workbook('test.xlsx')
ws = wb.active
# 创建红色字体(颜色代码FF0000对应红色)
red_font = Font(size=12, bold=True, color="FF0000")

# 遍历目标行,设置对应单元格的字体
for row_num in target_row_nums:
    ws.cell(row=row_num, column=aaa_col_num).font = red_font

# 保存修改后的文件
wb.save('after.xlsx')

关键说明

  • nlargest(3, 'AAA', keep='all'):keep='all'参数确保所有并列的前三大数据都会被选中,不会遗漏
  • 行/列号转换:pandas的索引体系从0开始,而Excel的行、列编号从1开始,必须做+1转换才能定位到正确的单元格
  • 颜色代码:原代码中的0000FF是蓝色,替换为FF0000即可实现红色字体标记

内容的提问来源于stack exchange,提问作者Winna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 16:07:07