熊猫日期时间将星期日设置为一周的第一天

Kev*_*ang 5 python datetime pandas

我有一个带有一系列日期(所有星期日)的熊猫数据框,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

该周由给出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
Run Code Online (Sandbox Code Playgroud)

如何以最简单的方式做到这一点?

附言:我没有提到这个数据集中有很多年。因此,在极少数情况下,一年中的最后一天是星期日,除了明年的第一周,我想获得今年的第53周

Ian*_*Ian 2

你可以用 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()
Run Code Online (Sandbox Code Playgroud)

如果您有多年,则对日期时间索引进行滚动操作。