首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于自定义开始日期创建双周变量

基于自定义开始日期创建双周变量
EN

Stack Overflow用户
提问于 2020-07-01 00:13:31
回答 2查看 402关注 0票数 0

我做了一些简单的搜索,使用“在python中获取双周变量”,但没有找到很多有用的帖子,所以我想在这里发布我的问题。

我有一个包含数万条记录的数据框架。数据帧包含整个会计年度的记录。每条记录都有一个datetime变量CHECKIN_DATE_TIME。我想创建一个双周变量,从日期2019年6月30日开始。

代码语言:javascript
运行
复制
ID       CHECKIN_DATE_TIME
1       2019-06-30 13:36:00
2       2019-06-30 14:26:00
3       2019-06-30 20:10:00
4       2019-06-30 21:27:00
....
51       2019-07-10 13:36:00
52       2019-07-10 10:26:00
53       2019-07-10 10:10:00
54       2019-07-10 23:27:00
....

我希望新的数据帧看起来像这样,其中2019年6月30日至2019年7月13日是第1周,2019年7月14日至2019年7月27日是第2周,依此类推,直到2020年6月28日结束日期。因此,在Week变量中将有26周,并且每周代表2周的时间范围。

编辑并将周范围内的最后一天分配给周编号。

代码语言:javascript
运行
复制
ID       CHECKIN_DATE_TIME       Week    Date
1       2019-06-30 13:36:00       1     7/13/2019
2       2019-06-30 14:26:00       1     7/13/2019
3       2019-06-30 20:10:00       1     7/13/2019
4       2019-06-30 21:27:00       1     7/13/2019
....
51       2019-07-20 13:36:00      2     7/27/2019
52       2019-07-20 10:26:00      2     7/27/2019
53       2019-07-20 10:10:00      2     7/27/2019
54       2019-07-20 23:27:00      2
....
EN

Stack Overflow用户

发布于 2020-07-01 00:31:18

您可以通过确定入住日期和2019-06-30之间的天数,然后进行楼层除以14来实现这一点。

代码语言:javascript
运行
复制
df['CHECKIN_DATE_TIME'] = pd.to_datetime(df.CHECKIN_DATE_TIME)    
df['week'] = (df.CHECKIN_DATE_TIME - pd.datetime(2019, 6, 30)).dt.days // 14 + 1
df['last_week_day'] = (pd.to_timedelta(-((df.CHECKIN_DATE_TIME - pd.datetime(2019,6,30)).dt.days % 14) + 13 ,'d') + df.CHECKIN_DATE_TIME).dt.date

# note I've created my own test set.

   ID   CHECKIN_DATE_TIME  week last_week_day
0   1 2019-06-30 13:36:00     1    2019-07-13
1   2 2019-07-10 10:36:00     1    2019-07-13
2   3 2019-07-12 02:36:00     1    2019-07-13
3   4 2019-07-18 18:36:00     2    2019-07-27
4   5 2019-07-30 11:36:00     3    2019-08-10
5   6 2019-08-01 20:36:00     3    2019-08-10

编辑:根据请求在评论中添加last_week_day。这是通过使用模运算符%计算CHECKIN_DATE_TIME列所需的天数来实现的。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62661757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档