重新采样每日大熊猫时间序列,从午夜以外的时间开始

时间:2013-12-04 11:56:04

标签: python pandas

我有一个10分钟频率数据的熊猫时间序列,需要找到每个24小时内的最大值。然而,这个24小时的时间段需要在凌晨5点开始 - 而不是大熊猫假设的默认午夜。

我一直在查看DateOffset,但到目前为止我正在画空白。我可能期望类似于pandas.tseries.offsets.Week(weekday=n)的东西,例如pandas.tseries.offsets.Week(hour=5),但据我所知,这不受支持。

我可以先通过shift数据做一个令人讨厌的工作,但它不直观,甚至在一周之后回到相同的代码我遇到了绕着移位方向的问题!

非常感谢任何更优雅的想法。

2 个答案:

答案 0 :(得分:14)

base关键字可以解决问题(请参阅docs):

s.resample('24h', base=5)

例如:

In [35]: idx = pd.date_range('2012-01-01 00:00:00', freq='5min', periods=24*12*3)

In [36]: s = pd.Series(np.arange(len(idx)), index=idx)

In [38]: s.resample('24h', base=5)
Out[38]: 
2011-12-31 05:00:00     29.5
2012-01-01 05:00:00    203.5
2012-01-02 05:00:00    491.5
2012-01-03 05:00:00    749.5
Freq: 24H, dtype: float64

答案 1 :(得分:1)

我刚刚发现了一个问题,这个问题以前没有出现在Google或Stack Overflow上:

Resample hourly TimeSeries with certain starting hour

这使用了base参数,它看起来像是Wes McKinney的Python for Data Analysis之后的补充。我已经给出了参数,似乎可以解决这个问题。