如何根据当前日期使用 python Pandas 从 Excel 工作表加载特定工作簿

Posted

技术标签:

【中文标题】如何根据当前日期使用 python Pandas 从 Excel 工作表加载特定工作簿【英文标题】:How to load specific workbook from excel sheet using python Pandas based on current date 【发布时间】:2020-12-09 20:34:03 【问题描述】:

我有一个包含 no 的 Excel 表。工作簿选项卡的名称为 1st、2nd、3rd、4th 等。我想根据当前日期打开工作簿。例如:如果今天是 8 月 20 日,那么我只想打开 8 月 20 日的工作簿并执行进一步的操作。目前我正在使用 pandas 并且能够通过提供工作表名称来打开工作簿,但我想通过比较当前日期条件来打开工作簿。

有人可以建议或帮助吗?

【问题讨论】:

pd.Timestamp.now().strftime("YOUR_FORMAT") 满足您的所有需求。 感谢您的评论亨利。这将如何帮助我阅读特定的工作簿。 ? pd.Timestamp.now() 为您提供带有当前日期的Timestamp。使用strftime 获取您想要的格式(read this 如果您不熟悉格式)然后将字符串传递给您的pd.read_excel 谢谢亨利,我试过这样做,但现在格式对我来说是个问题。我的工作簿选项卡名称类似于 1st、2nd、3rd 等等。只有当工作簿名称类似于数字 1、2、3 等时,我才能阅读。任何建议如何读取工作表名称,如 20th data=pd.Timestamp.now().strftime('%d') df1=pd.read_excel("aug.xlsx",sheet_name=data,skiprows=3) 以上代码将打开日期为 1、2、3、4、5 但我拥有的选项卡名称是 1、2、3 的工作簿。任何建议如何阅读本文 【参考方案1】:

作为建议,您可以定义一个带有所有预期名称的tuple,然后然后使用pd.Timestamp.now().strftime 命令(如cmets 中的建议)给出的索引来访问它。除了使用day 访问具有预期名称的sheet 之外,您还可以扩展行为并从strftime 获取month 以打开xlsx 文件。

输入 sep.xlsx

import pandas as pd

order = ('1st', '2nd', '3rd', '4th', '5th', '6th', '7th', '8th', '9th', '10th',
         '11th', '12th', '13th', '14th', '15th', '16th', '17th', '18th', '19th',
         '20th', '21st', '22nd', '23rd', '24th', '25th', '26th', '27th', '28th',
         '29th', '30th', '31st'
        )

day, month = pd.Timestamp.now().strftime("%d %b").split()
day = order[int(day)-1]
month = month.lower()

df1 = pd.read_excel(f"month.xlsx", sheet_name=day, skiprows=3)

【讨论】:

以上是关于如何根据当前日期使用 python Pandas 从 Excel 工作表加载特定工作簿的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python 或 pandas 根据包含字典列表的列过滤 DataFrame?

根据星期时间统计日期总量,绘制matplotlib,pandas,Python

根据 max 和 min 填写缺失的日期 pandas

根据 max 和 min 填写缺失的日期 pandas

python 数据分析--数据处理工具Pandas

根据星期时间统计日期总量,绘制matplotlib,pandas,Python