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周。
你可以用 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)
如果您有多年,则对日期时间索引进行滚动操作。