用于在 Excel 表中进行日期比较的 Python 脚本 [关闭]
Posted
技术标签:
【中文标题】用于在 Excel 表中进行日期比较的 Python 脚本 [关闭]【英文标题】:Python script for date comparison in excel sheet [closed] 【发布时间】:2018-12-01 18:57:27 【问题描述】:我是一个初学者,请帮助我使用pandas为以下内容创建python脚本的程序逻辑。
我有一个包含 5 列和多行的 Excel 表,其中包含过期 ssl 证书的详细信息。 第四列是到期日期。
我需要编写一个 Python 脚本来检查第 4 列的每个单元格中的日期,如果日期在从今天起 60 天的时间范围内,我需要将整行复制到新工作表中 em>,同样需要附加此时间范围内的所有行并邮寄此新电子表格。
【问题讨论】:
到目前为止你尝试了什么? 【参考方案1】:要从excel_path
打开工作表sheetname
,请使用
df = pd.read_excel(excel_path, sheetname=sheetname)
考虑数据框:
df = pd.DataFrame("a": [1,2,3,4,5,6],
"b": [7,8,9,0,1,2],
"c": [3,4,5,6,7,8],
"date": ["2018-01-01", "2018-02-02", "2018-03-03",
"2018-04-04", "2018-05-05", "2018-06-06"])
> a b c date
0 1 7 3 2018-01-01
1 2 8 4 2018-02-02
2 3 9 5 2018-03-03
3 4 0 6 2018-04-04
4 5 1 7 2018-05-05
5 6 2 8 2018-06-06
首先,使用必要的format 将date
列转换为datetime
dtype:
df["date"] = pd.to_datetime(df["date"], format="%Y-%m-%d")
获取df["date"]
和今天的项目之间的差异并过滤它们:
days_threshold = 60
filtered_ix = (pd.Timestamp("now") - df["date"]).dt.days < days_threshold
使用.loc
从数据框中选择过滤的行
filtered_df = df.loc[filtered_ix]
要将过滤后的行保存到工作表 output_sheet
上的 Excel 中,文件路径为 output_path
,请使用 df.to_excel
:
filtered_df.to_excel(output_path, sheet_name=output_sheet, index=False)
【讨论】:
非常感谢这个逻辑 koPytok 我已经构建了程序,但我收到了这个错误。 AttributeError: 'DatetimeProperties' 对象没有属性 'days' 显示错误的行 FilteredList=(pd.Timestamp("now")-df["ValidityEndDate"].dt.days AttributeError: 'DatetimeProperties' 对象没有属性 'days' 删除最后一个)
并在["ValidityEndDate"]
和.dt
之间添加)
:["ValidityEndDate"]).dt
以上是关于用于在 Excel 表中进行日期比较的 Python 脚本 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 VBA 在 Excel 中将日期与数据连接日期进行比较