首页 > 解决方案 > 循环遍历 panda 的 DataFrame

问题描述

我正在尝试查看我拥有但无法弄清楚的 DF。

这是一个检查 Excel 文件中新员工日期的脚本。

import pandas as pd
import datetime as dt

xls = pd.ExcelFile(r'test.xlsx')
df = pd.read_excel(xls, 'New Employment')
df['Start Date'] = pd.to_datetime(df['Start Date'])
today = pd.Timestamp.today()

#Calculate how many days are left til the employee starts working
df['Starts In'] = (df['Start Date'] - today).dt.days
delta_df = df[['Name', 'Starts In']]

所以此时,delta_df已经有了新员工的完整名单。它会打印出他们的姓名和天数,直到他们开始工作。

我想检查这个 DF 并设置一个条件来检查是否有员工将在不到 5 天的时间内开始工作。如果有,请将其添加到列表/DF。

该列表/DF 稍后将附加到我将发送的电子邮件中。

我不确定如何执行此检查。

标签: pythonexcelpandasdataframe

解决方案


delta_df['starts_soon'] = delta_df['Starts In']  < 5

您不需要遍历数据框,矢量化是使 pandas 如此强大的原因。

如果您只想要在不到 5 天内开始的人名列表,只需执行类似的操作

delta_df.loc[delta_df['Starts In'] < 5, 'Name']

对于您的电子邮件,您甚至可以这样做

delta_df.loc[delta_df['Starts In'] < 5, 'Name'].to_csv('name_list.csv')

推荐阅读