Python 熊猫日期时间将星期日设置为一周的第一天
我有一个熊猫数据框,上面有一系列日期(所有的星期天),如下所示:Python 熊猫日期时间将星期日设置为一周的第一天,python,pandas,datetime,Python,Pandas,Datetime,我有一个熊猫数据框,上面有一系列日期(所有的星期天),如下所示: Date Year Week 2011-01-02 2011 52 2011-01-23 2011 3 2011-01-23 2011 3 2011-01-30 2011 4 2011-01-30 2011 4 周由df['Date'].dt.week给出,我想要的是将星期日设置为一周的第一天,这样我就可以得到: Date Year Week 201
Date Year Week
2011-01-02 2011 52
2011-01-23 2011 3
2011-01-23 2011 3
2011-01-30 2011 4
2011-01-30 2011 4
周由df['Date'].dt.week
给出,我想要的是将星期日设置为一周的第一天,这样我就可以得到:
Date Year Week
2011-01-02 2011 1
2011-01-23 2011 4
2011-01-23 2011 4
2011-01-30 2011 5
2011-01-30 2011 5
我怎样才能用最简单的方法做到这一点
另外,我没有提到这个数据集中有很多年。因此,对于罕见的情况,一年的最后一天是星期天,我想得到今年的第53周,而不是明年的第1周。你可以使用
dayofweek
来得到它
date = pd.DatetimeIndex(start='2011-01-02', end='2011-12-31',freq='D')
df = pd.DataFrame([date,date.year,date.week,date.dayofweek])
df = df.T
df.columns=['date','year','week','dayofweek']
df['newweek'] = 0
df.loc[df['dayofweek']==6, 'newweek'] = 1
df['newweek'] = df['newweek'].cumsum()
如果您有多个年份,则可以对datetimeindex执行滚动操作。简单而快速的回答如下:
df['Week'] = df['Date'].apply(lambda x: (x + dt.timedelta(days=1)).week)
df
Date Year Week
0 2011-01-02 2011 1
1 2011-01-23 2011 4
2 2011-01-23 2011 4
3 2011-01-30 2011 5
4 2011-01-30 2011 5
基本上,第一天是星期一,因此应用时间增量将日期时间(星期日)移到第二天(星期一)很抱歉,我没有提到此数据集中存在多年。因此,在极少数情况下,一年中的最后一天是星期天,如果只是换一天,那么除了今年的最后一周(第53周),明年的第一周就会出现;对datetimeindex执行滚动操作意味着什么?