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

如何在一次.style调用中同时实现行最大值高亮与数值百分比格式化?

解决方法

pandas 的 Styler 对象支持方法链式调用,你只需要按顺序拼接格式设置、样式应用的两个方法即可,不需要拆分多次调用。

完整实现代码如下:

import pandas as pd
import numpy as np

# 示例数据
df = pd.DataFrame({'text' : ['hello world'],
                   'var1' : [0.1],
                   'var2' : [0.2]})

# 高亮最大值函数
def highlight_max(s, props = ''):
    return np.where(s == np.nanmax(s.values), props, '')

# 单次调用同时实现两个效果,axis=1代表按行计算最大值
df.style.format(
    {'var1' : '{:,.2%}'.format,
     'var2' : '{:,.2%}'.format}
).apply(highlight_max, axis=1, props='color: red;')

注意事项

  • apply 方法必须指定 axis=1 才会按行匹配最大值,默认axis=0是按列计算最大值
  • props 参数可自定义样式,比如需要背景标红可以改为 background-color: #ff7875;
  • 如果要限定高亮仅作用在数值列,可以在apply方法补充subset=['var1','var2']参数,避免改动文本列的样式

内容的提问来源于stack exchange,提问作者ℕʘʘḆḽḘ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:15:02