Python Как отправить несколько фреймов данных в виде HTML-таблиц в теле письма - PullRequest
0 голосов
/ 19 мая 2019

Я разделил один кадр данных на 4 кадра, основываясь на значении столбца, и я хочу отправить все эти кадры в теле письма с правильным форматированием таблицы, пожалуйста, сообщите, как мне этого добиться.

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Используя 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>
0 голосов
/ 19 мая 2019

Добро пожаловать в переполнение стека.Вы должны задать вопрос после попытки самостоятельно.Много помощи там в сети.

Однако вы можете использовать приведенный ниже фрагмент кода для отправки нескольких фреймов данных по электронной почте.Ниже код довольно прост и надеюсь, что объяснение не требуется.

#!/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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...