用于Excel工作表中日期比较的Python脚本

时间:2018-06-22 10:02:58

标签: python excel pandas

我是初学者,请使用以下程序逻辑帮助我使用pandas创建python脚本。

我有一个Excel工作表,其中有5列和许多行,其中包含ssl证书过期的详细信息。 第四列具有到期日期。

我需要编写一个 Python脚本来检查第4列的每个单元格中的日期,如果该日期位于从今天起60天的时间范围内,则需要将整行复制到新的工作表中 ,同样明智的做法是,在此时间范围内附加所有行,然后将其发送给新的电子表格。

1 个答案:

答案 0 :(得分:1)

要从sheetname中打开工作表excel_path,请使用

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

首先,将date列转换为format必需的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的工作表output_path上的Excel中,请使用df.to_excel

filtered_df.to_excel(output_path, sheet_name=output_sheet, index=False)