2017-10-11 132 views
1

的時刻,我有每小時千瓦時的能源消耗(消耗),其中包含了一所房子(ID)的數據幀,對於幾個月如持續時間:熊貓據幀組由

     ID Consumption 
DateTime        
2016-07-01 01:00:00 1642  0.703400 
2016-07-01 02:00:00 1642  0.724033 
2016-07-01 03:00:00 1642  0.747300 
2016-07-01 04:00:00 1642  0.830450 
2016-07-01 05:00:00 1642  0.704917 
2016-07-01 06:00:00 1642  0.708467 
2016-07-01 07:00:00 1642  0.806533 
2016-07-01 08:00:00 1642  0.774483 
2016-07-01 09:00:00 1642  0.724833 
2016-07-01 10:00:00 1642  0.721900 
2016-07-01 11:00:00 1642  0.729450 
2016-07-01 12:00:00 1642  0.757233 
2016-07-01 13:00:00 1642  0.744667 

這裏的DateTime是類型的索引。我的目標是找到在整個一週即每個小時的平均消費和方差(24 * 7 = 168小時)

HourOfWeek Consumption 
1    0.703400 
2    0.724033 
... 
168   0.876923 

我已經試過

print (df.groupby(df.index.week)['Consumption'].transform('mean')) 

然而,這並沒有給正確的結果,這怎麼能在熊貓裏完成?任何幫助將非常感激。

+0

'df.groupby(df.index.dayofweek * df.index.hour)[ '消費']變換( '平均')'? – Zero

回答

1

我認爲你需要groupbydayofweekhour,但需要添加1因爲第一個值是0在兩個。然後彙總mean

df1 = (df.groupby((df.index.dayofweek + 1) * (df.index.hour + 1))['Consumption'].mean() 
     .rename_axis('HourOfWeek') 
     .reset_index()) 
print (df1) 
    HourOfWeek Consumption 
0   10  0.703400 
1   15  0.724033 
2   20  0.747300 
3   25  0.830450 
4   30  0.704917 
5   35  0.708467 
6   40  0.806533 
7   45  0.774483 
8   50  0.724833 
9   55  0.721900 
10   60  0.729450 
11   65  0.757233 
12   70  0.744667 
+0

完美!這就是我正在尋找的。謝謝 –