如何将不同的条件格式应用于不同的行?

Posted

技术标签:

【中文标题】如何将不同的条件格式应用于不同的行?【英文标题】:How to apply different conditional format to different rows? 【发布时间】:2021-06-11 13:08:16 【问题描述】:

我有以下数据框: [1]:https://i.stack.imgur.com/wBi6V.png

我使用以下代码突出显示每个单元格的最大值:

def highlight_max(s):
    try:
        is_max = s == s.max()
        return ['background-color: red' if v else '' for v in is_max]
    except TypeError:
        pass
    except KeyError:
        pass
    
s = df.style.apply(highlight_max, axis=1)
s

但我只想将此格式应用于特定行,例如“每股账面价值 (mrq)”行。 我找不到任何可以帮助我的代码!!!

有人知道吗?

【问题讨论】:

HEELLLLLLLLPPPPPPPP! 【参考方案1】:

您可以使用subset 参数,像这样传递一个元组(row_indexer, column_indexer)...

s = df.style.apply(highlight_max, axis=1, subset=(0, df.columns))

行索引是从零开始的,因此0 代表您要格式化的第一行。

更多详情请看官方文档:Finer control: slicing

【讨论】:

完成!你知道我是否可以应用多个条件,例如某些行我想要最大值,而其他行我只想要最小值? 如果添加highlight_min 函数,则可以将apply() 调用替换为对applymap() 的2 次调用并再次传递subset 参数以定义每种样式所需的行要应用到。如果您遇到困难,那么您可以提出一个新问题,让我知道,我会看看 抱歉让您失望了,先生!但我没有能力,我还不是菜鸟,那些可调用的函数会吃掉我的大脑!如果你想试一试:***.com/questions/66619931/…

以上是关于如何将不同的条件格式应用于不同的行?的主要内容,如果未能解决你的问题,请参考以下文章

如何将条件格式应用于命名范围?

如果单元格 <> 单元格在上方,则条件格式

根据不同条件覆盖 ExtJs 4 中的日期字段格式

条件格式三种不同的条件

Java 设置Excel条件格式

谷歌表格中的条件格式不适用于重复项