毎月または四半期ごとのデータなど、パンダで低頻度の時系列を取得し、それを毎週の頻度にアップサンプリングするときに問題が発生しています。例えば、
data = np.arange(3, dtype=np.float64)
s = Series(data, index=date_range('2012-01-01', periods=len(data), freq='M'))
s.resample('W-SUN')
どこでも NaN で満たされたシリーズになります。基本的に同じことが起こります:
s.reindex(DatetimeIndex(start=s.index[0].replace(day=1), end=s.index[-1], freq='W-SUN'))
s
代わりに PeriodIndex でインデックスを作成すると、エラーが発生します。ValueError: Frequency M cannot be resampled to <1 Week: kwds={'weekday': 6}, weekday=6>
毎週の日付が毎月の日付と正確に一致せず、週が月に重なる可能性があるため、これが発生する理由を理解できます。ただし、とにかくこれを処理するためのいくつかの簡単なルールを実装したいと思います。具体的には、(1) その月で終わる最後の週を月の値に設定する、(2) その月で終わる最初の週を月の値に設定する、または (3) その月で終わるすべての週を月の値に設定する価値。それを達成するためのアプローチは何ですか?これを隔週のデータにも拡張したいと思うことは想像できます。
編集:ケース(1)の出力を理想的にしたい例は次のとおりです。
2012-01-01 NaN
2012-01-08 NaN
2012-01-15 NaN
2012-01-22 NaN
2012-01-29 0
2012-02-05 NaN
2012-02-12 NaN
2012-02-19 NaN
2012-02-26 1
2012-03-04 NaN
2012-03-11 NaN
2012-03-18 NaN
2012-03-25 2