熊猫定制周

时间:2015-09-07 18:15:03

标签: datetime python-3.x pandas

我正在尝试为数据框定义自定义周。

我有一个带时间戳的数据框。 我已经在这里阅读了关于isocalendar的问题。虽然它完成了这项工作。这不是我想要的。

我试图定义从周五到Thrusday的周数。

例如:

2015年1月2日星期五将是本周的第一天。

2015年1月8日星期四将是本周的最后一天。

这将是第1周。

有没有办法设置自定义工作日?因此,当我访问datetime库时,我得到了我期望的结果。

df['Week_Number'] = df['Date'].dt.week

1 个答案:

答案 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成为第一个完整的一周,则可能需要做一些额外的修改。