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

如何为Pandas DataFrame列中前n个最大值添加background_gradient?

首先你的原始数据表格如下:

column1column2
1222
34
1121414
1233
113123

要实现每列高亮前3个最大值的单元格,可以通过自定义样式函数解决highlight_max()只能标记单个最大值的问题,具体实现如下:

代码实现

import pandas as pd

# 构造你的数据
df = pd.DataFrame({
    'column1': [1, 3, 11, 12, 113],
    'column2': [222, 4, 21414, 33, 123]
})

def highlight_top_n(s, n=3, color='#f7dc6f'):
    # 获取列中前n大值的索引
    top_indices = s.nlargest(n).index
    # 生成对应样式,匹配索引的单元格添加背景色
    return [f'background-color: {color}' if idx in top_indices else '' for idx in s.index]

# 应用样式
styled_df = df.style.apply(highlight_top_n, n=3)
styled_df

说明

  • 自定义函数highlight_top_n会遍历每一列,定位该列前n个最大值的位置,为这些单元格设置指定背景色
  • 可通过修改color参数调整高亮颜色,比如改成#aed6f1实现浅蓝色高亮
  • 如果需要渐变背景效果,也可以针对前n个值单独结合background_gradient处理,但针对你的需求,纯色高亮更匹配示例效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:32:07