我想根据每日日期创建自定义索引,例如:
a = bdate_range('1990-01-01', freq='D', periods=10)
这将创建一个包含各种Timestamp对象的索引:
>>> a[0]
Timestamp('1990-01-01 00:00:00', offset='D')
不幸的是,Timestamp类似乎每次使用[ns]标志初始化基础numpy.datetime64
对象,即启用粒度低至纳秒。
这对我的数据来说太过分了,只需每日 粒度。不仅如此,但允许这么多粒度限制数据仅在1678年之后开始! (即Timestamp('1677-01-01')
将失败)。解决方案应该是可以以某种方式设置一个标志来确定Timestamp对象应该使用哪个datetime64分辨率,例如类似的东西:
Timestamp('1990-01-01', dtype='datetime64[d]')
并且理想情况下bdate_range或date_range应该具有可以设置的类似标志,以便创建格式正确的时间戳的整个索引。
长话短说,pandas是否有可能创建某种类型的索引(例如DatetimeIndex,或者DateIndex?),它特别适合处理日常数据?
感谢您的回复
答案 0 :(得分:2)
我相信DatetimeIndex的内部结构与纳秒分辨率密切相关,因此我不认为可以在那里做很多事情。
但是,正如"警告中所建议的那样#34; documentation的一部分,PeriodIndex可用于表示纳秒分辨率以外的日期。
In [147]: a = pd.period_range('1990-01-01', freq='D', periods=10)
In [148]: a[0]
Out[148]: Period('1990-01-01', 'D')