2014-04-01 31 views
3

我在3個地點有一個數據框小時時間序列的降雨量。頭部和尾部提供瞭如下數據的詳細信息。爲了瞭解降水的日變化,我想分析所有日子和所有年份的所有小時數據。熊貓根據小時分組以獲得日內變異性

hourly_series.head() 
          loc1_data loc2_data loc3_data 
2013-10-01 05:30:00+00:00  0.5   1   1 
2013-10-01 06:30:00+00:00  NaN  NaN  NaN 
2013-10-01 07:30:00+00:00  NaN  NaN  NaN 
2013-10-01 08:30:00+00:00   0   0   0 
2013-10-01 09:30:00+00:00  NaN  NaN  NaN 

[5 rows x 3 columns] 
hourly_series.tail() 
          loc1_data loc2_data loc3_data 
2014-01-01 00:30:00+00:00  7.5   1   5 
2014-01-01 01:30:00+00:00   0   0   0 
2014-01-01 02:30:00+00:00   0   2   0 
2014-01-01 03:30:00+00:00   0  4.5   0 
2014-01-01 04:30:00+00:00   1   0   0 

我試圖

hourly_grouped = hourly_series.groupby([(lambda x:x.year,lambda x:x.month, lambda x: x.time)]) 

然而,我could'nt實現期望的輸出。我是熊貓套裝的新手。

+0

你的嘗試輸出是什麼? – ouflak

回答

2

您是否正在尋找?

hourly_series['hour'] = hourly_series.index 
hourly_series['hour'] = hourly_series['hour'].apply(lambda x: x.hour) 
hourly_series.groupby(['hour']).var() # Or any other stats function 
+0

謝謝@ Shravan。另一個快速的問題是我如何在兩個給定的時間戳之間重新取樣以達到每日降雨量。例如,我想通過在第二天7:30到7:30之間將所有非NaN值相加來計算日降雨量。注意可能存在時間序列中的值超過24個,因爲頻率不是每小時。 – user1142937

+0

你好!如果你正在尋找一些開始和結束日期之間的每日總和,這應該工作。 開始= pd.to_datetime( '2012-05-30 00:00:00') 端= pd.to_datetime( '2012-06-01 00:00:00') hourly_series [ '天'] = hourly_series.index hourly_series ['day'] = hourly_series ['day']。apply(lambda x:x.date()) hourly_series [start:end] .groupby(['day'])。sum(skipna = True) – Shravan