2013-05-05 76 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