You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现邮件中DataFrame非0结果的HTML红色显示

实现DataFrame Findings列非0值邮件中红色显示的方法

要实现当DataFrame的Findings列值非0时在邮件正文中显示红色,你可以借助pandas的Styler类自定义单元格样式,再将带样式的HTML嵌入邮件。具体步骤如下:

1. 为DataFrame添加样式规则

在生成df_id后,定义一个样式函数,为Findings列中非0的单元格设置红色字体:

def highlight_non_zero(val):
    # 仅针对Findings列设置样式
    color = 'red' if val != 0 else 'black'
    return f'color: {color}'

# 应用样式到Findings列,生成带样式的HTML
styled_html = df_id.style.applymap(highlight_non_zero, subset=['Findings']).to_html(index=False)

2. 修改邮件HTML代码

将原邮件中直接使用df_id.to_html()的部分替换为上面生成的styled_html:

msg = MIMEMultipart('mixed')
msg['Subject'] = SUBJECT
msg['From'] = FROM
msg['To'] = ','.join(TO)
    
html = f"""
    <html><body>
    <h1> </h1>
    <p> Please see the summary below {styled_html} </p>
    </body></html>
    """
   
msg_text = MIMEText(html, 'html')
msg.attach(msg_text)

关键说明

  • applymap方法配合subset参数,仅对Findings列的单元格应用样式,避免不必要的性能消耗。
  • Styler.to_html()生成的HTML包含内联样式,绝大多数邮件客户端都能正常解析渲染。

内容的提问来源于stack exchange,提问作者bananas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:50:24