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

Sur*_*j_j 2 html css python dataframe pandas

在我的代码中,我使用 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 ''
Run Code Online (Sandbox Code Playgroud)

现在,我想制作一个类似的函数(或曾经使用当前的 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])

hel*_*err 5

您需要使用apply(axis=1)来遍历行:

def highlight_vals(row, cols=['A', 'B'], color='green'):
    a, b = cols
    styles = {col: '' for col in row.index}
    if row[a] > 0.25 * row[b]:
        styles[a] = 'background-color: %s' % color
        styles[b] = 'background-color: %s' % color
    return styles

df.style.apply(lambda x: highlight_vals(x, cols=['B', 'E']), axis=1)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明