pandas dataframe resample(“1D”) で時刻を指定する方法

panda dataframe

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)

この方法を使うことで、特定の時間帯に基づいたデータのリサンプルが簡単に行えます。

コメント

タイトルとURLをコピーしました