首页 > 解决方案 > 如何使用 pandas Styler 函数按列值为 html 表着色

问题描述

我有一个要渲染到 html 表的数据框,我想使用基于每列目标值的渐变颜色来设置样式。

理想情况下,目标值不会应用背景,而其他值将具有红色或绿色阴影,具体取决于它们是高于还是低于目标值。

df = pd.DataFrame({'Col 1': [7, 8, 12, 4, 'Target Val 1'],
                   'Col 2': [1, 4, 5, 8, 'Target Val 2'],
                   'Col 3': [7, 5, 3, 24, 'Target Val 3']})

我试过使用Styler.background_gradient,但我只能使用列中的最大值作为渐变的最大值,并且目标值最终与列的其余部分一起设置样式。

编辑当前代码:

cm = sns.light_palette('green', as_cmap = True)

[t.style.set_table_attributes('border="1" class="dataframe table table-hover 
table-bordered"').background_gradient(cm).set_properties(**{'font-size': 
'12px', 'font-family':'Calibri', 'text-align':'center'}).format("{:.0f}%", 
subset=percent_cols).render() for t in style_teams]

标签: pythonpandas

解决方案


推荐阅读