将 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')
我有一个如下所示的数据框
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')