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

如何在HTML邮件模板中嵌入Pandas DataFrame动态数据

如何将Pandas DataFrame数据嵌入HTML邮件模板

核心需求

替换HTML邮件中的两处动态内容:

  • 将「Dear User」中的User替换为DataFrame最后一行的指定列值
  • 将「Users daily amount」替换为DataFrame最后一行的特定原因列值

实现步骤与代码示例

1. 准备示例DataFrame

假设你的DataFrame包含用户名称和异常原因两列(请根据实际业务调整列名):

import pandas as pd

# 示例数据,实际使用时替换为你的数据源
df = pd.DataFrame({
    'username': ['Alice', 'Bob', 'Charlie'],
    'anomaly_reason': ['Daily login spike', 'Unusual transaction volume', 'Users daily amount']
})

2. 提取DataFrame最后一行的目标值

通过iloc[-1]定位到DataFrame的最后一行,提取需要的字段:

# 获取最后一行记录
last_record = df.iloc[-1]
# 提取用户名称和异常描述
target_user = last_record['username']
target_anomaly = last_record['anomaly_reason']

3. 构建带动态变量的HTML邮件内容

使用Python的f-string语法直接替换HTML模板中的占位符:

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# 初始化邮件对象
msg = MIMEMultipart()

# 构建HTML内容,嵌入动态变量
html_content = f'''
<html>
    <body>
        <p><img src="cid:1" width="900" height="100"></p>
        <b><h1 style="text-align: left;">Pay Attention!</h1></b>
        <h3 style="text-align: left;">Dear {target_user},</h3>
        <p>There has been an anomaly in the following meaurement: </p>
        <b><p>{target_anomaly}</p></b>
        <h3>Reasons: </h3>
        <p> - Increase in the amount of Information Request sent</p>
        <p> - Unknown new rule firing </p>
        <h3>Last 2 Weeks Activity</h3>
        <p><img src="cid:0"></p>
    </body>
</html>
'''

# 将HTML内容附加到邮件
msg.attach(MIMEText(html_content, 'html', 'utf-8'))

注意事项

  • 列名匹配:确保代码中引用的列名与你的DataFrame实际列名完全一致,否则会引发KeyError
  • 空DataFrame处理:如果DataFrame可能为空,需提前判断避免报错:
if not df.empty:
    last_record = df.iloc[-1]
    target_user = last_record['username']
    target_anomaly = last_record['anomaly_reason']
else:
    # 设置默认值
    target_user = 'Valued User'
    target_anomaly = 'Unknown measurement anomaly'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:39:16