用于在 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 中将日期与数据连接日期进行比较

将表中的日期与 TableAU 中的多个日期范围进行比较:构建 WHERE 语句

SQL - 比较表中的日期

pytho xlrd简介

SQL比较2个日期并在> 3天时显示在表中

golang怎么对日期和时间进行排序