将 pandas df 转换为 html table 并根据条件将颜色应用于 pandas 行

Convert pandas df to html table and apply color to pandas row based on a criteria

我有一个如下所示的数据框

test_id,status,revenue,cnt_days,age     
1,passed,234.54,3,21          
2,passed,543.21,5,29
11,failed,21.3,4,35
15,failed,2098.21,6,57             
51,passed,232,21,80     
75,failed,123.87,32,43

df1 = pd.read_clipboard(sep=',')

我想在 revenue is greater than 500 时为行着色。所以,我用 pretty_html_table 找到 here

所以,我使用 conditions 参数尝试了以下但没有成功

build_table(data,'blue_light', font_size='8px',font_family='Open Sans,sans-serif',
                     text_align='center',width='70px',index=False, conditions={'Revenue': {'max':500,'max_color': 'red'}},even_color='black',even_bg_color='white')

但这并没有对列应用任何颜色。

如何使用它来应用颜色,以便我可以在我的电子邮件 body 中使用它 html table

我希望我的输出如下所示,黄色列 header 和红色收入 > 500 行

你可以试试.style.apply.set_table_styles

def highlight(row):
    if row['revenue'] > 500:
        return ['background-color: red'] * len(row)
    else:
        return [''] * len(row)

s = df.style.apply(highlight, axis=1)
s = s.set_table_styles([
    {
        'selector': '.col_heading',
        'props': 'background-color: yellow; color: black;'
    }
])

s.to_html('output.html')