Skip to main content
 首页 » 编程设计

Python 日期系列生成

2025年05月04日9yyy_WW

在 python 中,给定一个开始日期:2018 年 11 月 2 日(星期五), 我需要生成一个包含一系列每周日期的数据框并将它们标记如下: 基本上每个日期对从一个星期五到下一个星期四,跨越 1 周

START_DT    END_DT        WEEK_IND  MONTH_IND(same month as END_DT) 
2018-11-01  2018-11-08     1         201811 
2018-11-09  2018-11-15     2         201811 
2018-11-16  2018-11-22     3         201811 
2018-11-23  2018-11-29     4         201811 
2018-11-30  2018-12-06     1         201812( WEEK_IND resets as it is a new month) 
... 
... 

有人能指出我正确的方向吗?

请您参考如下方法:

你可以这样做:

import pandas as pd 
 
start = pd.date_range(start='20181102', end='20181231', freq='1w-FRI') 
end = start + pd.DateOffset(6) 
 
df = pd.DataFrame({ 'start': start, 'end': end, 'month': end.strftime('%Y%m')}, columns=['start', 'end', 'month']) 
df['week'] = df.groupby('month').cumcount() + 1 
 
print(df) 

输出

       start        end   month  week 
0 2018-11-02 2018-11-08  201811     1 
1 2018-11-09 2018-11-15  201811     2 
2 2018-11-16 2018-11-22  201811     3 
3 2018-11-23 2018-11-29  201811     4 
4 2018-11-30 2018-12-06  201812     1 
5 2018-12-07 2018-12-13  201812     2 
6 2018-12-14 2018-12-20  201812     3 
7 2018-12-21 2018-12-27  201812     4 
8 2018-12-28 2019-01-03  201901     1