我有一个格式为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', '20170101', freq='30min')