使用 Dataframes style.apply 基于比较值突出显示

在我的代码中,我使用 df.style.applymap() 将 HTML 呈现到我的 Intranet 网页上。我有以下代码对我来说效果很好(2 列被传递给我的函数 highlight_vals)。


def highlight_vals(val, color='green', color1='red'):

        if val > 0.8:

            return 'background-color: %s' % color

        elif val < -0.9:

            return 'background-color: %s' % color1

        else:

            return ''

现在,我想制作一个类似的函数(或曾经使用当前的 highlight_vals),以便在以下条件下实现比较突出显示:

if ValinColumn1 > 0.25 * ValinColumn2: # (For same Row/Record)

return 'background-颜色:%s' % 颜色 #黄色/高光。



我在我的views.py 中使用了上面的函数:

httresp += df.style.applymap(highlight_vals,subset=[col1,col2])


慕姐4208626
浏览 457回答 2
2回答

守着一只汪

您需要使用apply(axis=1)来遍历行:def highlight_vals(row, cols=['A', 'B'], color='green'):&nbsp; &nbsp; a, b = cols&nbsp; &nbsp; styles = {col: '' for col in row.index}&nbsp; &nbsp; if row[a] > 0.25 * row[b]:&nbsp; &nbsp; &nbsp; &nbsp; styles[a] = 'background-color: %s' % color&nbsp; &nbsp; &nbsp; &nbsp; styles[b] = 'background-color: %s' % color&nbsp; &nbsp; return stylesdf.style.apply(lambda x: highlight_vals(x, cols=['B', 'E']), axis=1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python