【发布时间】:2015-08-14 09:42:47
【问题描述】:
我正在使用 python/pandas,并且想知道如何获取一年中某一天的周数,而星期六是一周的第一天。 我确实搜索了很多,但一直将星期一或星期日作为一周的第一天...... 请帮忙...谢谢
谢谢大家!真的很感谢你所有的快速回答......但我不得不道歉,我没有清楚地提出我的问题。
我想知道一年中的周数。例如,2015-08-09 是第 32 周,而星期一是一周的第一天,但第 33 周是一周的第一天。
感谢@Cyphase 和大家,我对Cyphase 的代码稍作修改,它可以工作了。
def week_number(start_week_on, date_=None):
assert 1 <= start_week_on <= 7 #Monday=1, Sunday=7
if not date_:
date_ = date.today()
__, normal_current_week, normal_current_day = date_.isocalendar()
print date_, normal_current_week, normal_current_day
if normal_current_day >= start_week_on:
week = normal_current_week + 1
else:
week = normal_current_week
return week
【问题讨论】:
-
“但一直将星期一或星期日作为一周的第一天” - 这不是一个很好的解决方案,但您可以只取数字并始终减去或添加以弥补范围的差异。
-
你不能只做
dt.dayofweek减5,如果它是负数,加7循环吗? -
感谢 EdChum,但我没有说清楚,我实际上需要一年中的周数。我编辑了我的问题。
-
因此,在这种情况下,如果星期几是星期一或星期日,您将在一年中的一周中添加 1