基于datetime numpy数组获取下个月的第一个日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于datetime numpy数组获取下个月的第一个日期相关的知识,希望对你有一定的参考价值。
数据
lst=array(['2019-08-30T00:00:00.000000000', '2019-09-30T00:00:00.000000000',
'2019-10-31T00:00:00.000000000', '2019-11-29T00:00:00.000000000',
'2020-01-23T00:00:00.000000000', '2020-02-28T00:00:00.000000000'],
dtype='datetime64[ns]')
目标
我想获取上述数组中每个元素的下个月开始日期。例如,2019-08-30T00:00:00.000000000
将为'2019-09-01T00:00:00.000000000'
,2020-01-23T00:00:00.000000000
将为2020-02-01T00:00:00.000000000
,最终输出将是像'2019-08-30T00:00:00.000000000':'2019-09-01T00:00:00.000000000',……
的字典
尝试
[通过某些元素容易获得+timedelta(days=1)
,但是对于'2020-01-23T00:00:00.000000000'
等则很难。
答案
您可以转换为月的单位,加一并转换回去:
(lst.astype("M8[M]")+1).astype("M8[ns]")
# array(['2019-09-01T00:00:00.000000000', '2019-10-01T00:00:00.000000000',
# '2019-11-01T00:00:00.000000000', '2019-12-01T00:00:00.000000000',
# '2020-02-01T00:00:00.000000000', '2020-03-01T00:00:00.000000000'],
# dtype='datetime64[ns]')
以上是关于基于datetime numpy数组获取下个月的第一个日期的主要内容,如果未能解决你的问题,请参考以下文章