使用pandas asfreq / resample来结束这段时间

时间:2015-02-13 14:54:47

标签: pandas

我试图找到每天的平均值,并将该值作为一年中每小时的输入值。问题是最后一天只包含第一个小时。

rng = pd.date_range('2011-01-01', '2011-12-31')
ts = pd.Series(np.random.randn(len(rng)), index=rng)
days = ts.resample('D')
day_mean_in_hours = asfreq('H', method='ffill')
day_mean_in_hours.tail(5)
2011-12-30 20:00:00   -0.606819
2011-12-30 21:00:00   -0.606819
2011-12-30 22:00:00   -0.606819
2011-12-30 23:00:00   -0.606819
2011-12-31 00:00:00   -2.086733
Freq: H, dtype: float64

有没有一种很好的方法可以将频率更改为小时并且仍然可以获得完整的最后一天?

1 个答案:

答案 0 :(得分:0)

您可以使用覆盖最近一整天的每小时DatetimeIndex reindex来构建框架。

hourly_rng = pd.date_range('2011-01-01', '2012-01-01', freq='1H', closed='left')
day_mean_in_hours = day_mean_in_hours.reindex(hourly_rng, method='ffill')

另请参见Resample a time series with the index of another time series