2017-10-10 8 views
1

タイムスタンプを持つデータフレームをインデックスとして持つデータの頻度は10分です。データフレームの正確な時間の周りの平均を計算する

h - 30minからh + 30minまでの平均値を計算する方法が見つかりません。ここで、hはすべて正時(時)です。

In[1]: date_index = pd.date_range('2015-12-01 00:00:00', freq='10Min', periods=70) 
     df = pd.DataFrame(np.random.rand(70), index= date_index, columns=['Data']) 
     df.head(10) 

Out[1]:     Data 
2015-12-01 00:00:00 0.653885 
2015-12-01 00:10:00 0.605046 
2015-12-01 00:20:00 0.438547 
2015-12-01 00:30:00 0.062426 
2015-12-01 00:40:00 0.415468 
2015-12-01 00:50:00 0.458047 
2015-12-01 01:00:00 0.523140 
2015-12-01 01:10:00 0.736519 
2015-12-01 01:20:00 0.934904 
2015-12-01 01:30:00 0.799523 

私は範囲としてdf.indexでループのために使用して考えて、そしてすべての正確な時間を探して、その後、特定の時間の周りの間隔の平均値を計算するが、私は見つけることができないました1時間ほどでデータを簡単に索引付けできます。パンダでこれを行う簡単な方法はありますか?ありがとう。

答えて

3

期待される正確な出力はここではわかりませんが、半時間ごとにデータを再サンプリングし、平均1.5時間の平均値を得ることができます。

df.resample('30T').mean().rolling(3, center = True).mean() 

    Data 
2015-12-01 00:00:00 NaN 
2015-12-01 00:30:00 0.419649 
2015-12-01 01:00:00 0.427544 
2015-12-01 01:30:00 0.414868 
2015-12-01 02:00:00 0.545400 
2015-12-01 02:30:00 0.643669 
2015-12-01 03:00:00 0.626265 
2015-12-01 03:30:00 0.581142 
2015-12-01 04:00:00 0.508442 
2015-12-01 04:30:00 0.511635 
2015-12-01 05:00:00 0.452952 
2015-12-01 05:30:00 0.473471 
2015-12-01 06:00:00 0.400974 
2015-12-01 06:30:00 0.358676 
2015-12-01 07:00:00 0.244290 
2015-12-01 07:30:00 0.343688 
2015-12-01 08:00:00 0.456954 
2015-12-01 08:30:00 0.548263 
2015-12-01 09:00:00 0.431159 
2015-12-01 09:30:00 0.378981 
2015-12-01 10:00:00 0.407988 
2015-12-01 10:30:00 0.496860 
2015-12-01 11:00:00 0.508232 
2015-12-01 11:30:00 NaN 
関連する問題