python - Python日期系列生成
问题描述
在 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
推荐阅读
- linux - 将 systemd 计时器设置为每 90 秒运行一次
- html - HTML超链接在CSS中使用“位置:相对,上,左”属性时变成普通文本
- apache-spark - 读取过去 2 小时在 Pypark 中创建的镶木地板文件
- javascript - 使用 Material-UI 进行 React 钩子表单验证
- reactjs - 更新 ScheduleComponent 中的字段后,选择处理程序在错误的字段键 (id) 下返回 EndTime 日期
- java - 使用 .next().get 时,Java LinkedList 不会从对象打印变量
- google-apps-script - 使用 CardService 的多选下拉菜单
- perl - Perl:如果找到匹配项,如何插入一行?
- .net - 使用 .NET 控制台应用程序监视剪贴板
- owl - protege 颗粒推断问题