データポイントの数を減らすためにPandas時系列をリサンプリングすると、各結果データポイントのタイムスタンプは各リサンプリングビンの先頭にあります。異なるリサンプリングレートでグラフをオーバープロットすると、データが明らかにシフトします。どのようにして再サンプリングされたデータのタイムスタンプをそのビンに「センタリングする」ことができますか?リサンプリングされた時系列の中心datetimes
(一時間にリサンプリングする場合)私は今を取得することです:
In [12]: d_r.head()
Out[12]:
2017-01-01 00:00:00 0.330567
2017-01-01 01:00:00 0.846968
2017-01-01 02:00:00 0.965027
2017-01-01 03:00:00 0.629218
2017-01-01 04:00:00 -0.002522
Freq: H, dtype: float64
私がしたいことは次のとおりです。apprarentシフトを示す
In [12]: d_r.head()
Out[12]:
2017-01-01 00:30:00 0.330567
2017-01-01 01:30:00 0.846968
2017-01-01 02:30:00 0.965027
2017-01-01 03:30:00 0.629218
2017-01-01 04:30:00 -0.002522
Freq: H, dtype: float64
MWE:
#!/usr/bin/env python3
Minimal working example:
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
import seaborn
seaborn.set()
plt.ion()
# sample data
t = pd.date_range('2017-01-01 00:00', '2017-01-01 10:00', freq='1min')
d = pd.Series(np.sin(np.linspace(0, 7, len(t))), index=t)
d_r = d.resample('1h').mean()
d.plot()
d_r.plot()
loffsetは仕事ができますそれは理想的ではありません。なぜなら、私はいくつかの異なるスケール(最小限、毎時、毎日)にリサンプリングすることになり、手動で各オフセットを指定する必要があるからです。 –