Python 今天如何比赛';在数据框中输入日期并发送电子邮件

Python 今天如何比赛';在数据框中输入日期并发送电子邮件,python,pandas,email,dataframe,Python,Pandas,Email,Dataframe,我正在学习如何使用熊猫来处理数据,我觉得这很酷也很有趣。我正在尝试建立一个自动电子邮件系统 但现在我有以下储备: 这个问题涉及到我的一个老问题 这是may数据集的外观: 我想检查来自的datatime\u是否是今天,如果是真的,请获取该行的电子邮件地址并发送电子邮件消息。我使用pandas作为数据帧,我的想法是使用smtplib发送电子邮件,但我愿意使用其他库 以下是我到目前为止的代码: import smtplib import pandas def send_me_email():

我正在学习如何使用熊猫来处理数据,我觉得这很酷也很有趣。我正在尝试建立一个自动电子邮件系统

但现在我有以下储备: 这个问题涉及到我的一个老问题

这是may数据集的外观:

我想检查来自的
datatime\u是否是今天,如果是真的,请获取该行的电子邮件地址并发送电子邮件消息。我使用pandas作为数据帧,我的想法是使用smtplib发送电子邮件,但我愿意使用其他库

以下是我到目前为止的代码:

import smtplib
import pandas 

def send_me_email():
  server = smtplib.SMTP('smtp.gmail.com', 587)
  server.starttls()
  server.login('xxx@gmail.com', 'xxxxxxx')

  msg = "YOUR MESSAGE!"
  server.sendmail("YOUR EMAIL ADDRESS", "THE EMAIL ADDRESS TO SEND TO", msg)
  server.quit()

  msg = "YOUR MESSAGE!"
  server.sendmail("xxx@gmail.com", "xxx@gmail.com", msg)
  server.quit()

csv = pandas.read_csv('testfile.csv', delimiter=',')

#csv['datetime_from'].dtype

csv['datetime_from'] = pandas.to_datetime(csv['datetime_from'], errors='coerce')
#csv['datetime_from'].dtype

today_date = pandas.datetime.today().date()

csv2 = csv['datetime_from'].dt.date == today_date

csv['datetime_from'].where(csv).apply(send_me_email())
这是不正确的工作,我无法想出它如何抓住所有的实际日期对应的电子邮件地址,并发送电子邮件给这些人。随着每天新的输入,数据文件将不断增长


任何想法都将不胜感激。

您需要使用获得的掩码为数据帧编制索引:

csv2 = csv[csv['datetime_from'].dt.date == today_date]
此外,您的
send\u me\u email
必须采用
df.apply
传递给它的参数:

def send_me_email(email):
    ...
此参数是电子邮件。确保修改函数体以相应地处理它

现在可以使用
df.apply应用函数。不要调用你的函数。您必须传递它(不带
()
):


您需要使用获得的掩码为数据帧编制索引:

csv2 = csv[csv['datetime_from'].dt.date == today_date]
此外,您的
send\u me\u email
必须采用
df.apply
传递给它的参数:

def send_me_email(email):
    ...
此参数是电子邮件。确保修改函数体以相应地处理它

现在可以使用
df.apply应用函数。不要调用你的函数。您必须传递它(不带
()
):


谢谢你的回答。这正是我的问题,如何才能发送所有受影响行的电子邮件。我理解它背后的逻辑,但我在“发送电子邮件”功能中遗漏了一些东西。我尝试了“to_email=csv2.ix[:,7]”和“server.sendmail(”andres@gmail.com“,to_email,msg)”在“发送我的邮件”功能中,但它不起作用。如果您对此有任何帮助,我将不胜感激,如何创建该功能:def send_me_email(email):send=email。。。。这样我就可以将项目从数据帧传递到function@El_Patr就像我说的,函数接受一个参数,即收件人电子邮件。您所需要做的就是编写代码,使其发送到该地址。谢谢您的回答。这正是我的问题,如何才能发送所有受影响行的电子邮件。我理解它背后的逻辑,但我在“发送电子邮件”功能中遗漏了一些东西。我尝试了“to_email=csv2.ix[:,7]”和“server.sendmail(”andres@gmail.com“,to_email,msg)”在“发送我的邮件”功能中,但它不起作用。如果您对此有任何帮助,我将不胜感激,如何创建该功能:def send_me_email(email):send=email。。。。这样我就可以将项目从数据帧传递到function@El_Patr就像我说的,函数接受一个参数,即收件人电子邮件。您所需要做的就是编写代码,使其发送到该地址。