[英]Pandas to_datetime convert year-week to date in 2019, first week is wk0
[英]Convert year-week to date condition to date where the week has max days for that month
让我解释一下,我正在尝试转换2017年的第5周; 201705到属于2月的日期,因为它属于一年的第5周。
到目前为止,我已经能够将自定义日期格式转换为以下日期:
import datetime
d = '201705'
dt = datetime.datetime.strptime(d+'1', '%Y%W%w')
然后输出,2017-01-30 00:00:00
但是有一种方法可以将日期转换为2月,并且类似地,属于一个月的所有星期数都将转换为该月
编辑:我要的是,如果周数是5,然后是2月,如果周数是9,然后是3月-类似于周-月映射,但是除了将年-周更改为日期格式
import datetime
d = '201705'
dt = datetime.datetime.strptime(d+'1', '%Y%W%w')
month_from_date = dt.strftime("%B")
print(dt)
print(month_from_date)
将输出:
2017-01-30 00:00:00
January
对于您为什么期望2月,我有点困惑,因为01-30实际上是1月。
您可以在此处找到更多格式信息
快速测试一下我的评论,关于选择星期日作为任意工作日而不是星期一。
>>> import datetime
>>> d1=['201205','201305','201605','201705','201805','201905','202005','202105','202205','202305']
>>> d2=['201209','201309','201609','201709','201809','201909','202009','202109','202209','202309']
>>> for dat in d1:
... datetime.datetime.strptime(dat+ '0','%Y%W%w')
...
datetime.datetime(2012, 2, 5, 0, 0)
datetime.datetime(2013, 2, 10, 0, 0)
datetime.datetime(2016, 2, 7, 0, 0)
datetime.datetime(2017, 2, 5, 0, 0)
datetime.datetime(2018, 2, 4, 0, 0)
datetime.datetime(2019, 2, 10, 0, 0)
datetime.datetime(2020, 2, 9, 0, 0)
datetime.datetime(2021, 2, 7, 0, 0)
datetime.datetime(2022, 2, 6, 0, 0)
datetime.datetime(2023, 2, 5, 0, 0)
>>> for dat in d2:
... datetime.datetime.strptime(dat+ '0','%Y%W%w')
...
datetime.datetime(2012, 3, 4, 0, 0)
datetime.datetime(2013, 3, 10, 0, 0)
datetime.datetime(2016, 3, 6, 0, 0)
datetime.datetime(2017, 3, 5, 0, 0)
datetime.datetime(2018, 3, 4, 0, 0)
datetime.datetime(2019, 3, 10, 0, 0)
datetime.datetime(2020, 3, 8, 0, 0)
datetime.datetime(2021, 3, 7, 0, 0)
datetime.datetime(2022, 3, 6, 0, 0)
datetime.datetime(2023, 3, 5, 0, 0)
>>>
你的旅费可能会改变。
一年以后,我还没有进行测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.