在Python中使用win32com时,如何循环数据帧中的列



我正在编写代码,使用win32com在outlook中发送一批提醒,我已经创建了一个数据帧,包括每个提醒的日期和相应的主题。名为"data"的数据帧如下(实际上还有更多的行(:

主题2022年4月1日13:00:00电子邮件2022年4月4日15:00:00会议2022年4月8日15:00:00会议

首先,通常在数据帧行上循环不是panda的方法,因为它比使用矢量化操作慢。

你的循环也有一个问题:

> import pandas as pd
> from datetime import datetime
>df = pd.DataFrame({
'date': [
datetime.strptime('01/04/2022 13:00:00', '%d/%m/%Y %H:%M:%S'),
datetime.strptime('04/04/2022 15:00:00', '%d/%m/%Y %H:%M:%S'),
datetime.strptime('08/04/2022 15:00:00', '%d/%m/%Y %H:%M:%S')
],
'subject': ['emails', 'meeting', 'meeting']
})
> print(df)
| | date | subject |
| - | - | - |
|0 | 2022-04-01 13:00:00 | emails |
|1 | 2022-04-04 15:00:00 | meeting |
|2 | 2022-04-08 15:00:00 | meeting |
> for i in df[['date', 'subject']]:
print(i)
date
subject

如果您想在数据帧的行上循环,可以使用itertuples:

> def sendreminder(df):
for r in df.itertuples(index=False):
# appt = outlook.CreateItem(1)
start = r.date
subject = r.subject
print(f'appt.Start : {start}')
print(f'appt.Subject : {subject}n')
> sendreminder(df)
appt.Start : 2022-04-01 13:00:00
appt.Subject : emails
appt.Start : 2022-04-04 15:00:00
appt.Subject : meeting
appt.Start : 2022-04-08 15:00:00
appt.Subject : meeting

最新更新