2013-05-05 69 views
2

我正在处理每小时时间序列(日期,时间(小时),P)并试图计算每小时每日总量的比例。我知道我可以用熊猫的重新取样('D',how ='sum')来计算P(DailyP)的每日总数,但是在同一步骤中,我想用每日P来计算每日P的比例每小时(所以,P/DailyP)以每小时时间序列结束(即与原始频率相同)。我不确定这是否可以称为熊猫术语中的“重采样”。 这可能从我使用的术语来看很明显,但我是一个Python或编程的绝对新手。如果任何人都可以建议一种方法来做到这一点,我会非常感激。 谢谢!大熊猫将每小时时间序列重新采样为小时比例时间序列

回答

3

一种可能的方法是重新索引日常资金回原来的每小时指数(reindex)和正填充值(这样每隔一小时得到的那一天和的值,fillna):

df.resample('D', how='sum').reindex(df.index).fillna(method="ffill") 

这可以用来分割原始数据帧。

一个例子:

>>> import pandas as pd 
>>> import numpy as np 
>>> 
>>> df = pd.DataFrame({'P' : np.random.rand(72)}, index=pd.date_range('2013-05-05', periods=72, freq='h')) 
>>> df.resample('D', 'sum').reindex(df.index).fillna(method="pad") 
          P 
2013-05-05 00:00:00 14.049649 
2013-05-05 01:00:00 14.049649 
... 
2013-05-05 22:00:00 14.049649 
2013-05-05 23:00:00 14.049649 
2013-05-06 00:00:00 13.483974 
2013-05-06 01:00:00 13.483974 
... 
2013-05-06 23:00:00 13.483974 
2013-05-07 00:00:00 12.693711 
2013-05-07 01:00:00 12.693711 
.. 
2013-05-07 22:00:00 12.693711 
2013-05-07 23:00:00 12.693711