Мне не хватает контекста, поэтому я предполагаю, что под «Dataframe» вы имеете в виду pandas DataFrame и что вы используете встроенную Python smtplib .
В следующем примере отправляется сообщение электронной почты с кадром данных Pandas в теле:
<code>import pandas as pd
import html
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def send_email(msg_body):
# The following block is inspired by Todor Minakov's answer in https://stackoverflow.com/a/33121151/13891613
sender = "someemailaddress@somehost.someprefix"
receiver = "someotheremailaddress@someotherhost.someprefix"
msg = MIMEMultipart('alternative')
msg['Subject'] = "Alert"
msg['From'] = sender
msg['To'] = receiver
msg_body = html.escape(msg_body)
message_html = f'<html><body><pre>{msg_body}
'part2 = MIMEText (message_ html,' html ') msg.attach (part2) # Отправьте сообщение через обычный сервер Gmail, через SSL - пароли отправляются, после s = smtplib.SMTP_SSL (' smtp.gmail.com ') # выполните smtp auth; отправляет ehlo, если он еще не был отправлен s.login (отправитель, пароль = input ("Введите пароль: \ n")) s.sendmail (отправитель, получатель, msg.as_string ()) s.quit () если __name__ == '__main__': # Создайте пример pandas dataframe data = {'Столбец A': ['Некоторое значение', 'Некоторое значение2', 'Некоторое значение3'], 'Столбец B': ['Некоторое значение' , 'Некоторое значение2', 'Некоторое значение3'], 'Столбец C': ['Некоторое значение', 'Некоторое значение2', 'Некоторое значение3'],} df = pd.DataFrame (data, columns = ['Column A ',' Column B ',' Column C ']) # Отправьте фрейм данных по электронной почте, используя smtplib message = f "Уважаемый пользователь, Ниже приведены детали KPI: \ n \ n {df.to_string ()}" send_email (сообщение)
Приведенный выше скрипт создал следующее сообщение в моей учетной записи Gmail (после аутентификации моей машины в учетной записи Gmail):
введите описание изображения здесь
Если под «Dataframe» вы имели в виду нечто иное, чем pandas DataFrame, то вы можете просто сериализовать объект вашего фрейма данных в строку и передать его в теле сообщения, аналогично тому, как это сделано в скрипте.