2015-09-07 41 views
0

我想为数据框定义一个自定义星期。大熊猫自定义星期

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

我试图定义从星期五到星期三的星期。

例如:

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

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

,这将是本周1

有没有一种方法来设置自定义工作日?所以当我访问datetime库时,我得到了我期望的结果。

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

+0

看看时间戳偏移文档:http://pandas.pydata.org/pandas-docs/stable/timeseries.html#dateoffset-objects。它可能有帮助! – dagrha

+0

检查此@Andy海登回复http://stackoverflow.com/questions/14530556/resample-time-series-in-pandas-to-a-weekly-interval/14531149#14531149 – Michal

+0

@米哈尔非常感谢。我会检查出来:) – Kvothe

回答

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周可以是不完整的,所以你可能必须做一些额外的改写(munging)如果你想1是第一个完整周相同的约定。