我希望从CSV文件中的列中读取数据。 此列中的所有数据均为日期。 (DD / MM / YYYY)。 我希望我的程序读取“日期”列,如果日期在当前日期的3天内,我想向该行中的所有值添加变量。
例如。
Date,Name,LaterDate
1/1/19,John Smith, 2/21/19
如果我在2019年2月19日运行程序,我希望发送一封电子邮件,指出“约翰·史密斯的案子将于2019年2月21日结束。”
我了解如何发送电子邮件。我卡住的部分是: 专门阅读CSV列。 如果日期在3天内, 将变量分配给ROW中的值, 使用这些变量发送自定义电子邮件。
我看到了很多“使用熊猫”,但我可能需要分解各个步骤。
谢谢。
答案 0 :(得分:0)
首先,您需要读取csv文件的所有值并将其存储在变量(old_df
)中。然后,您需要将所有日期保存在系列(dates
)中。接下来,我们创建一个具有相同列的空DataFrame。在这里,我们为date
中的每个dates
创建一个简单的for循环,它的索引为i
。从datetime库中将date转换为datetime对象。然后,我们减去当前日期和date
之间的天数。取days
的绝对值,这样我们总是得到正数的天数。然后将old_df
中该特定日期的索引添加到new_df
中。
import pandas as pd
from datetime import datetime
old_df = pd.read_csv('example.csv')
dates = old_df['LaterDate']
new_df = pd.DataFrame(columns=['Date', 'Name', 'LaterDate'])
for i, date in enumerate(dates):
date = datetime.strptime(date, '%m/%d/%y')
days = (datetime.now() - date).days
if abs(days) <= 3:
new_df = new_df.append(old_df.loc[i, :])
print(new_df)