2017-01-24 5 views
0

하루의 시작에 groupby를 어떻게 시작할 수 있습니까? 이 코드Pandas groupby 오늘의 시작에

df.groupby(pd.TimeGrouper(freq='3600s')).aggregate(np.mean) 

입력 :

2016-12-09 22:00:00   0.78 
2016-12-09 23:00:00   0.37 
2016-12-10 00:00:00   0.24 
2016-12-10 01:00:00   0.22 
2016-12-10 02:00:00   0.19 

이 목표 출력 :

2016-12-09 00:00:00   Nan 
2016-12-09 01:00:00   Nan 
... 
2016-12-09 22:00:00   0.78 
2016-12-09 23:00:00   0.37 
2016-12-10 00:00:00   0.24 
2016-12-10 01:00:00   0.22 
2016-12-10 02:00:00   0.19 

답변

0

난 그냥 당신의 dataframe를 인덱싱하기 위해 쉬운 생각이 코드

2016-12-09 22:00:00   0.78 
2016-12-09 23:30:00   0.37 
2016-12-10 00:20:00   0.24 
2016-12-10 01:30:00   0.22 
2016-12-10 02:00:00   0.19 

출력 다시 샘플링하고 평균을 찾은 후에 .

df['date'] = pd.to_datetime(df.date) 
df1 = df.set_index('date').resample('h').mean() 

new_idx = pd.date_range(df1.index.min().date(), df1.index.max(), freq='h') 
df1.reindex(new_idx) 

        value 
2016-12-09 00:00:00 NaN 
2016-12-09 01:00:00 NaN 
2016-12-09 02:00:00 NaN 
2016-12-09 03:00:00 NaN 
2016-12-09 04:00:00 NaN 
2016-12-09 05:00:00 NaN 
2016-12-09 06:00:00 NaN 
2016-12-09 07:00:00 NaN 
2016-12-09 08:00:00 NaN 
2016-12-09 09:00:00 NaN 
2016-12-09 10:00:00 NaN 
2016-12-09 11:00:00 NaN 
2016-12-09 12:00:00 NaN 
2016-12-09 13:00:00 NaN 
2016-12-09 14:00:00 NaN 
2016-12-09 15:00:00 NaN 
2016-12-09 16:00:00 NaN 
2016-12-09 17:00:00 NaN 
2016-12-09 18:00:00 NaN 
2016-12-09 19:00:00 NaN 
2016-12-09 20:00:00 NaN 
2016-12-09 21:00:00 NaN 
2016-12-09 22:00:00 0.78 
2016-12-09 23:00:00 0.37 
2016-12-10 00:00:00 0.24 
2016-12-10 01:00:00 0.22 
2016-12-10 02:00:00 0.19