import pandas as pd
import datetime as dt
# Read csv file
df=pd.read_csv("data.csv", engine="python", header=None)
# Add column header names
df.columns=["EmployeeID", "LastName", "FirstName", "DOB", "Email", "Salary", "DOH", "TermDate"]
# Determine which Dates of Hire are earlier than today's date
df0 = df.loc[df["DOH"] > (dt.datetime.today().strftime('%m/%d/%Y')), ["EmployeeID", "LastName", "FirstName", "DOH"]]
# Print dataframe output to separate worksheet within one Excel file
with pd.ExcelWriter("ErrorOutput.xlsx") as writer:
df0.to_excel(writer, sheet_name="Incorrect DOH", index=False)
我正在通过简单地将CSV文件与今天的日期进行比较来检查不正确的雇用日期(DOH)。我希望将来的DOH记录在Excel文件中显示为错误记录。
当我运行代码时,我得到的记录中的日期早于今天的日期,这与我想要的相反。我猜我的dt.datetime.today().strftime('%m/%d/%Y')
线是问题所在。文件日期格式为MM/DD/YYYY。
2条答案
按热度按时间bprjcwpo1#
检查字符串是否大于另一个字符串似乎会导致问题。我写了一个小脚本,将今天的日期与以前的日期和下个月的日期进行比较,但是当我比较它们时,它们的值都显示为false。也许您可以将日期转换为自epoch以来的整数值,或者将日期格式化为不带斜杠的字符串并将其转换为整数。下面的代码片段显示了字符串比较失败,但如果我格式化不带斜杠并转换为int,则可以正常工作。
blmhpbnm2#
您似乎忘记将
DOH
解析为日期。此外,不需要外部 datetime 模块: