pandasを使ってデータフレームを一日ごとリサンプルする際に、特定の時刻に基づいてデータを抽出したい場合があります。例えば毎日朝8時を基準にして、集計したい場合などです。
主な処理の流れとしてはdataframeのindexにset_indexでdatetime型を割り当て、一度データを指定時間シフト後に元の時刻に戻すといった処理の流れです。
# データを7時間シフトしてリサンプル
df_shifted = df.shift(-7, freq='h')
# リサンプル (1日のリサンプル)
resampled = df_shifted.resample('D')
# 各日付ごとのデータを取得して7時間オフセットしてリストに再格納
arr=[]
for key ,each_resample in resampled:
#時間を元に戻す
each_resamle.index=each_resample .index + pd.DateOffset(hours=7)
arr.append((key,each_resample ))
#結果を表示する
for key ,each_resamle in arr:
print(key)
この方法を使うことで、特定の時間帯に基づいたデータのリサンプルが簡単に行えます。
コメント