【问题标题】:Python How to send multiple dataframe as HTML tables in the email bodyPython如何在电子邮件正文中将多个数据帧作为HTML表格发送
【发布时间】:2019-05-19 23:49:34
【问题描述】:

我已根据列值将单个数据帧拆分为 4 个数据帧,我想以正确的表格格式在电子邮件正文中发送所有这些数据帧,请告知我该如何实现。

【问题讨论】:

  • 欢迎来到 SO!,你能提供一些代码来展示你的尝试吗?
  • 嗨@Jagdish693 是df.to_html() 你想要什么?查看答案,如果不是,我将删除答案
  • 正如@lrh09 所说,您可以使用df.to_html() 将表格获取为HTML。而且你可以连接很多表df1.to_html() + "<br>" + df2.to_html()

标签: python pandas email dataframe


【解决方案1】:

欢迎来到 Stack Overflow。您应该在自己尝试后提出问题。网上有很多帮助。

但是,您可以使用以下代码 sn-p 将多个数据帧作为电子邮件发送。 下面的代码非常简单,希望不需要解释。

#!/usr/local/bin/python3.6
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import pandas as pd
import matplotlib

def send_mail(cdf):
    df = cdf  # Make anaother DF; in you case you'll may be pass another Data Frame to this function
    sender = "xxx@yy.com"
    receiver = ['xxxx@yy.com']
    msg = MIMEMultipart('related')

    msg['Subject'] = "Subject Here"
    msg['From'] = sender
    msg['To'] = ", ".join(receiver)
    html = """\
    <html>
      <head></head>
      <body>
        <p>Hi!<br>
           Here is first Data Frame data:<br>
           {0}
           <br>Here is second Data Frame data:<br>
           {1}

           Regards,
        </p>
      </body>
    </html>

    """.format(cdf.to_html(), df.to_html())

    partHTML = MIMEText(html, 'html')
    msg.attach(partHTML)
    ser = smtplib.SMTP('gateway_server', port_number)
    ser.login("username", "password")
    ser.sendmail(sender, receiver, msg.as_string())

【讨论】:

    【解决方案2】:

    通过使用df.to_html()

    df = 
    
       A  B
    0  A  C
    1  A  G
    2  T  T
    3  C  G
    4  A  A
    5  G  G
    
    > print(df.to_html())
    
    
    <table border="1" class="dataframe">
      <thead>
        <tr style="text-align: right;">
          <th></th>
          <th>A</th>
          <th>B</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th>0</th>
          <td>A</td>
          <td>C</td>
        </tr>
        <tr>
          <th>1</th>
          <td>A</td>
          <td>G</td>
        </tr>
        <tr>
          <th>2</th>
          <td>T</td>
          <td>T</td>
        </tr>
        <tr>
          <th>3</th>
          <td>C</td>
          <td>G</td>
        </tr>
        <tr>
          <th>4</th>
          <td>A</td>
          <td>A</td>
        </tr>
        <tr>
          <th>5</th>
          <td>G</td>
          <td>G</td>
        </tr>
      </tbody>
    </table>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 2016-11-11
      • 2018-05-06
      • 1970-01-01
      • 2011-09-03
      • 2020-05-08
      • 1970-01-01
      相关资源
      最近更新 更多