[英]Pandas: extend resampling window
假设我有一个每2小时有一个数据点的“低频”系列,我想将其升频到1小时的频率。
在下面的代码片段中是否有可能让高频信号有24行(而不是23行)? 更准确地说,我希望新索引的范围从00:00到23:00,具有NaN
值(而不是在22:00停止)。
我已经玩了很多选项,但我仍然找不到干净的方法来做到这一点。
import pandas as pd
import numpy as np
low_f = pd.Series(np.random.randn(12),
index=pd.date_range(start='01/01/2017', freq='2H', periods=12),
name='2H').cumsum()
high_f = low_f.resample('1H', ).mean()
print(high_f.tail(1).index)
#Yields DatetimeIndex(['2017-01-01 22:00:00'], dtype='datetime64[ns]', freq='H')
#I'd like DatetimeIndex(['2017-01-01 23:00:00'], dtype='datetime64[ns]', freq='H')
#(w/ 24 elements)
您可以使用DateTimeIndex.shift
方法将日期移动1小时(前导)。 就拿union
它的旧索引和新成立的移动索引。
最后,根据这些指数reindex
它们。 由于在最后一个索引处不存在该series
值,因此它们将由NaN
根据其默认的fill_value
参数填充。
high_f.reindex(high_f.index.union(high_f.index.shift(1, 'H')))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.