如何在熊猫中对DatetimeIndex
个对象进行重新采样?假设我有一些名为DatetimeIndex
的{{1}}对象。我想拥有一个索引,如果我运行它将成为结果:
oldindex
但是此解决方案进行了不必要的计算(即构造了一个序列并计算了总和),而且看起来很丑。不幸的是,newindex = pd.Series(index=oldindex, data=None).resample('H').sum().index
无法正常工作,尽管我看不出任何原因或类似原理在原则上无法正常工作。对于重新采样索引,操作(求和,均值,填充...)将无关紧要。
答案 0 :(得分:0)
重新采样是更改数据,如果您没有要更改的数据,则可以使用所需的频率(覆盖原始范围)创建一个新索引:
>>> oldindex
DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04',
'2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08',
'2020-01-09', '2020-01-10'],
dtype='datetime64[ns]', freq='D')
>>> newindex = pd.date_range(start=oldindex[0], end=oldindex[-1], freq='H')
>>> newindex
DatetimeIndex(['2020-01-01 00:00:00', '2020-01-01 01:00:00',
'2020-01-01 02:00:00', '2020-01-01 03:00:00',
'2020-01-01 04:00:00', '2020-01-01 05:00:00',
'2020-01-01 06:00:00', '2020-01-01 07:00:00',
'2020-01-01 08:00:00', '2020-01-01 09:00:00',
...
'2020-01-09 15:00:00', '2020-01-09 16:00:00',
'2020-01-09 17:00:00', '2020-01-09 18:00:00',
'2020-01-09 19:00:00', '2020-01-09 20:00:00',
'2020-01-09 21:00:00', '2020-01-09 22:00:00',
'2020-01-09 23:00:00', '2020-01-10 00:00:00'],
dtype='datetime64[ns]', length=217, freq='H')
(为清楚起见,您也可以使用oldindex[0]
和oldindex[-1]
代替oldindex.min()
和oldindex.max()