python - 循环遍历 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 稍后将附加到我将发送的电子邮件中。
我不确定如何执行此检查。
解决方案
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')
推荐阅读
- python - 不知道如何打印最小二乘误差
- c++ - 代码的输出未按预期进行
- android-studio-3.0 - Android studio:在 linux mint 上运行此 AVD 需要 kvm
- php - 在 php 文件中添加一个 php 文件
- google-apps-script - 当单元格不为空时运行脚本
- python - 在 Python 中通过 Header 获取主机公共 IP
- python-3.x - 如何在不截断的情况下将大型多维 numpy ndarray 转换为字符串并将其保存到 python3 中的 .txt?
- javascript - 比较两个图像并使用像素匹配查看差异 - 刷新画布失败
- r - 如何将 rJava 加载到 RStudio 中?
- angular - 使用 [ngModelOptions]="{standalone: true }" 时如何禁用表单按钮?