我正在尝试为数据框定义自定义周。
我有一个带时间戳的数据框。 我已经在这里阅读了关于isocalendar的问题。虽然它完成了这项工作。这不是我想要的。
我试图定义从周五到Thrusday的周数。
例如:
2015年1月2日星期五将是本周的第一天。
2015年1月8日星期四将是本周的最后一天。
这将是第1周。
有没有办法设置自定义工作日?因此,当我访问datetime
库时,我得到了我期望的结果。
df['Week_Number'] = df['Date'].dt.week
答案 0 :(得分:1)
以下是一种解决方案 - 将您的日期转换为Period
,代表周四结束的周数。
In [39]: df = pd.DataFrame({'Date':pd.date_range('2015-1-1', '2015-12-31')})
In [40]: df['Period'] = df['Date'].dt.to_period('W-THU')
In [41]: df['Week_Number'] = df['Period'].dt.week
In [44]: df.head()
Out[44]:
Date Period Week_Number
0 2015-01-01 2014-12-26/2015-01-01 1
1 2015-01-02 2015-01-02/2015-01-08 2
2 2015-01-03 2015-01-02/2015-01-08 2
3 2015-01-04 2015-01-02/2015-01-08 2
4 2015-01-05 2015-01-02/2015-01-08 2
请注意,它遵循与日期时相同的约定,其中第1周可能不完整,因此如果您希望1成为第一个完整的一周,则可能需要做一些额外的修改。