如何在python中获取特定一周的第一天和最后一天的日期



假设我有一周=1

则("1 Jan"、"7 Jan"(应为输出。

我相信你需要GroupBy.agg,但也是必要的year,因为dt.week每年都不一样:

rng = pd.date_range('2017-04-03', periods=100)
df = pd.DataFrame({'Date': rng})  
df = df.groupby(df['Date'].dt.week)['Date'].agg([('start','first'),('end','last')])
print (df)
start        end
Date                      
14   2017-04-03 2017-04-09
15   2017-04-10 2017-04-16
16   2017-04-17 2017-04-23
17   2017-04-24 2017-04-30
18   2017-05-01 2017-05-07
19   2017-05-08 2017-05-14
20   2017-05-15 2017-05-21
21   2017-05-22 2017-05-28
22   2017-05-29 2017-06-04
23   2017-06-05 2017-06-11
24   2017-06-12 2017-06-18
25   2017-06-19 2017-06-25
26   2017-06-26 2017-07-02
27   2017-07-03 2017-07-09
28   2017-07-10 2017-07-11

rng = pd.date_range('2019-04-03', periods=100)
df = pd.DataFrame({'Date': rng})  
df = df.groupby(df['Date'].dt.week)['Date'].agg([('start','first'),('end','last')])
print (df)
start        end
Date                      
14   2019-04-03 2019-04-07
15   2019-04-08 2019-04-14
16   2019-04-15 2019-04-21
17   2019-04-22 2019-04-28
18   2019-04-29 2019-05-05
19   2019-05-06 2019-05-12
20   2019-05-13 2019-05-19
21   2019-05-20 2019-05-26
22   2019-05-27 2019-06-02
23   2019-06-03 2019-06-09
24   2019-06-10 2019-06-16
25   2019-06-17 2019-06-23
26   2019-06-24 2019-06-30
27   2019-07-01 2019-07-07
28   2019-07-08 2019-07-11

最新更新