使用Dataframes style.apply基于比较值进行突出显示 [英] Using Dataframes style.apply for Highlighting based on comparative values
问题描述
在我的代码中,我使用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屋!