如何根据当前日期使用 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?