2017-06-10 2 views
2

私は1秒ごとに値の通年データとデータフレームを持っている:毎時平均/月(移動平均)

YYYY-MO-DD HH-MI-SS_SSS  TEMPERATURE (C) 
2016-09-30 23:59:55.923  28.63 
2016-09-30 23:59:56.924  28.61 
2016-09-30 23:59:57.923  28.63 
    ...       ... 
2017-05-30 23:59:57.923  30.02 

私は毎週または月を要する新しいデータフレームを作成したいです毎日の同じ時間(一種の移動平均ですが、毎時間)で平均します。 だから月の場合の結果は次のようになります。

 Date   TEMPERATURE (C) 
2016-09 00:00:00  28.63 
2016-09 01:00:00  27.53 
2016-09 02:00:00  27.44 
    ... 
2016-10 00:00:00  28.61 
    ...     ... 

私は毎月および使用のための12件のDFさんにDFを分割することができるという事実を認識してよ:

hour = pd.to_timedelta(df['YYYY-MO-DD HH-MI-SS_SSS'].dt.hour, unit='H') 
df2 = df.groupby(hour).mean() 

しかし、私はより良い、より速い方法を探しています。

ありがとうございます!あなたは、(代わりに12のDFSの作成と管理の)MultiIndexデータフレームを形成するために、さらにgroupby週間と時間の両方

df['datetime'] = pd.to_datetime(df['YYYY-MO-DD'] + ' ' + df['HH-MI-SS_SSS']) 

ができます:ここで

答えて

1

はあなたの日付と時刻の列を変換する別の方法です

df.groupby([df.datetime.dt.weekofyear, df.datetime.dt.hour]).mean() 

enter image description here