在pandas中对不规则时间序列进行降采样
我在pandas中有一个时间序列,长得像这样:
2012-01-01 00:00:00.250000 12
2012-01-01 00:00:00.257000 34
2012-01-01 00:00:00.258000 45
2012-01-01 00:00:01.350000 56
2012-01-01 00:00:02.300000 78
2012-01-01 00:00:03.200000 89
2012-01-01 00:00:03.500000 90
2012-01-01 00:00:04.200000 12
有没有办法把它降采样到1秒的数据,而不需要对齐到1秒的边界?比如说,有没有办法提取出这些数据(假设降采样的方式是使用在采样时间之前或正好在采样时间的最新值):
2012-01-01 00:00:00.250000 12
2012-01-01 00:00:01.250000 45
2012-01-01 00:00:02.250000 56
2012-01-01 00:00:03.250000 89
2012-01-01 00:00:04.250000 12
1 个回答
5
创建一个时间索引,频率设置为每秒一次,偏移量为四分之一秒,像这样。
index = pd.date_range('2012-01-01 00:00:00.25',
'2012-01-01 00:00:04.25', freq='S')
然后把你的数据调整到这个索引上,并使用“向前填充”的方法来减少数据的数量,达到你想要的结果。
s.reindex(index, method='ffill')
data
2012-01-01 00:00:00.250000 12
2012-01-01 00:00:01.250000 45
2012-01-01 00:00:02.250000 56
2012-01-01 00:00:03.250000 89
2012-01-01 00:00:04.250000 12