【发布时间】:2016-12-28 07:15:00
【问题描述】:
我目前有一个程序设置来运行两种不同的方式。一种方法是在指定的时间范围内运行,另一种方法是每天运行。但是,当我将它设置为每天运行时,我只希望它在工作日继续运行。现在通过研究,我发现您可以像这样使用 Pandas 遍历工作日:
start = 2016-08-05
end = datetime.date.today().strftime("%Y-%m-%d")
for day in pd.bdate_range(start, end):
print str(day) + " is a business Day"
当我在指定的时间段内运行我的程序时,这非常有用。
但是当我想让程序每天运行时,我不知道如何测试某一天是否是工作日。基本上我想做这样的事情:
start = datetime.date.today().strftime("%Y-%m-%d")
end = datetime.date.today().strftime("%Y-%m-%d")
if start == end:
if not Bdate(start)
print "Not a Business day"
我知道我可以设置 pd.bdate_range() 来做我正在寻找的东西,但在我看来这会很草率而且不直观。我觉得必须有一个更简单的解决方案。有什么建议吗?
【问题讨论】:
-
任务中最困难的部分是定义工作日是什么。它可能因国家而异,在极少数情况下甚至因村庄而异。
-
感谢 Klaus D 的评论。我想补充一些细节:这个程序是针对美国工作日的。特别是市场(纽约证券交易所、纳斯达克等)开放和股票交易发生的日子
-
请查看此模块。它可能会帮助你。 pypi.python.org/pypi/bdateutil/0.1
-
那么,这些日子是如何定义的?如果你有答案,你只需要把它放在一个函数中。
标签: python date datetime pandas