微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python,Pandas,Numpy:Date_range:将np.timedelta作为freq传递.争论

我有一个格式为numpy.timedelta(64)的时间增量:
value = numpy.timedelta64(30,’m’)
 (这里30分钟).

有没有办法将该值传递给pandas date_range的构造:
pd.date_range(start_time,end_time,freq = value)?

如果不是如何转换该值以便在date_range中传递它?我尝试了value.astype(‘str’),但它返回’0:30:00′,它也不适合作为pd.date_range的参数.

解决方法

您可以将其转换为timedelta并将其传递给freq.

>>> pd.date_range('20160101','20170101',freq=pd.timedelta(value)) 
DatetimeIndex(['2016-01-01 00:00:00','2016-01-01 00:30:00','2016-01-01 01:00:00','2016-01-01 01:30:00','2016-01-01 02:00:00','2016-01-01 02:30:00','2016-01-01 03:00:00','2016-01-01 03:30:00','2016-01-01 04:00:00','2016-01-01 04:30:00',...
               '2016-12-31 19:30:00','2016-12-31 20:00:00','2016-12-31 20:30:00','2016-12-31 21:00:00','2016-12-31 21:30:00','2016-12-31 22:00:00','2016-12-31 22:30:00','2016-12-31 23:00:00','2016-12-31 23:30:00','2017-01-01 00:00:00'],dtype='datetime64[ns]',length=17569,freq='30T')

我认为旧版本的pandas不支持功能,但仍可使用频率字符串:

pd.date_range('20160101',freq='30min')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐