如何解决我们可以将pandas.DatetimeIndex的日历分配为'noleap'吗?或者datetime.timedelta可以跳过2月29日
我的熊猫数据框具有DatetimeIndex: DatetimeIndex(['1950-02-07','1951-12-30,'1952-03-04',..............'2020-04-07'],dtype ='datetime64 [ns]',长度= 589,freq =无))
我想在无跳365日历中使用timedelta乘days = -4来移动索引 例如:'1952-03-04'timedelta(days = -4)我想获取'1952-02-28'而不是'1952-02-29'
有人可以给我一些建议吗?
非常感谢您。
解决方法
我们可以将pandas.DatetimeIndex的日历分配为'noleap'吗?
我认为不是。
datetime.timedelta可以跳过2月29日吗?
我认为不是。
一种可能的解决方案是测试该日期,并通过减去天来测试条件变化的时间增量:
a = ['1952-03-04','1951-12-30']
idx = pd.to_datetime(a)
print (idx)
DatetimeIndex(['1952-03-04','1951-12-30'],dtype='datetime64[ns]',freq=None)
out = idx - pd.Timedelta(4,unit='days')
print (out)
DatetimeIndex(['1952-02-29','1951-12-26'],freq=None)
out = np.where((out.day == 29) & (out.month == 2),out - pd.Timedelta(1,unit='days'),out)
print (out)
['1952-02-28T00:00:00.000000000' '1951-12-26T00:00:00.000000000']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。