我有一個df:
date
2021-06-28
2021-06-29
2021-06-30
2021-07-02
2021-07-04
2021-07-07
2021-08-06
2021-08-07
我正在嘗試將其轉換為周,我知道我可以使用df.date.dt.isocalendar().week,但這會回傳帶有默認開始日期的周數,而我的開始日期是2021-06-28. 我可以在df使用pd.Grouper(key = 'date', freq = 'W-MON', label = 'left', closed = 'left')中實作日期,groupby但我希望在不使用的情況下獲得相同的輸出groupby- 只需將函式應用于date列。
我的目標是:
date
2021-06-28
2021-06-28
2021-06-28
2021-06-28
2021-06-28
2021-07-05
2021-08-02
2021-08-02
因為這些日期代表該日期所在的每周的星期一。
uj5u.com熱心網友回復:
您可以轉換為“W-SUN”期間并獲得第一天:
df['date'] = pd.to_datetime(df['date'])
df['Monday'] = df['date'].dt.to_period('W-SUN').dt.start_time
注意。為什么是“W-SUN”?這表示以 SUN(day)結束的星期,因此從星期一開始。請參閱錨定偏移量。
輸出:
date Monday
0 2021-06-28 2021-06-28
1 2021-06-29 2021-06-28
2 2021-06-30 2021-06-28
3 2021-07-02 2021-06-28
4 2021-07-04 2021-06-28
5 2021-07-07 2021-07-05
6 2021-08-06 2021-08-02
7 2021-08-07 2021-08-02
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/481366.html
