使用Dataframes style.apply基于比较值进行突出显示 [英] Using Dataframes style.apply for Highlighting based on comparative values

查看:46
本文介绍了使用Dataframes style.apply基于比较值进行突出显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In my code I am using df.style.applymap() to render HTML onto my intranet Webpage. I have the following Code which is working Well for me, (2 Columns are passed on to my function 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),以便在以下条件的条件下实现比较突出显示:
如果ValinColumn1> 0.25 * ValinColumn2:#(用于同一行/记录)
返回'background-color:%s'%颜色#Yellow/Highlights.

Now, I want to make a similar function (or ever use the current highlight_vals) in order to achieve Comparative Highlighting with the condition on the lines of:
if ValinColumn1 > 0.25 * ValinColumn2: # (For same Row/Record)
return 'background-color: %s' % color #Yellow/Highlights.


我在 views.py 中使用上述功能:
httresp + = df.style.applymap(highlight_vals,subset = [col1,col2])


I am using the above function in my views.py:
httresp += df.style.applymap(highlight_vals,subset=[col1,col2])

推荐答案

您需要使用 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)

这篇关于使用Dataframes style.apply基于比较值进行突出显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆