Pandas Python3如何在电子邮件中发送熊猫数据帧

Pandas Python3如何在电子邮件中发送熊猫数据帧,pandas,dataframe,Pandas,Dataframe,错误消息以fp形式打开(文本文件“rb”): TypeError:应为str、bytes或os.PathLike对象,而不是上述代码中的数据帧,df定义为textfile是当前内存中存在的数据。因此,无法执行带打开的命令with open是一种将硬盘上存储的任何文件加载到内存中的功能。Pandas具有df.to_html功能 复制Chris Albon: 从这里,查看此线程以获取电子邮件提示: 看起来您需要附加HTML文件;我不确定它是否会在线显示,而且我没有可以检查的邮件服务器。您想将其作为

错误消息以fp形式打开(文本文件“rb”):
TypeError:应为str、bytes或os.PathLike对象,而不是上述代码中的数据帧,
df
定义为
textfile
是当前内存中存在的数据。因此,无法执行带打开的
命令
with open
是一种将硬盘上存储的任何文件加载到内存中的功能。

Pandas具有
df.to_html
功能

复制Chris Albon:

从这里,查看此线程以获取电子邮件提示:


看起来您需要附加HTML文件;我不确定它是否会在线显示,而且我没有可以检查的邮件服务器。

您想将其作为邮件正文中的文本发送,还是作为附件(文本、csv等)发送?我想将其嵌入邮件正文中。您可以将df转换为HTML表-。我从未使用过这个功能;我不确定您是否必须导出并附加html文件,或者是否可以将其内嵌。(当然,您的电子邮件必须支持HTML。)是的,这就是我问题的核心。。。是否可以在电子邮件中发送数据帧,或者是我唯一选择以html或附件形式发送.csv的方法?我知道发送数据帧的方法是将其发送到csv。我不知道如何发送到html。这应该是评论,而不是作为一个答案张贴!
def call_panda():
    filename = 'C:\\file.csv'
    cols_to_use = ['col1', 'col2', 'col3', 'col4']
    df = pd.read_csv(filename, nrows= 5,usecols=cols_to_use,index_col='col1')               
    # Send email
    me = 'me@email.com'
    you = 'you@email.com'
    textfile = df
    with open(textfile, 'rb') as fp:
        msg = MIMEText(fp.read())
        msg['Subject'] = 'Contents of file'
        msg['From'] = me
        msg['To'] = you
        s = smtplib.SMTP('mailhost.acme.net')
        s.sendmail(me, [you], msg.as_string())
        s.quit()
import pandas as pd

raw_data = {
        'subject_id': ['1', '2', '3', '4', '5'],
        'first_name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 
        'last_name': ['Anderson', 'Ackerman', 'Ali', 'Aoni', 'Atiches']}
df_a = pd.DataFrame(raw_data, columns = ['subject_id', 'first_name', 'last_name'])
df_a.to_html('df.html')