セットアップコードは次のとおりです。
import pandas
from datetime import datetime
a_values = [1728, 1635, 1733]
a_index = [datetime(2011, 10, 31), datetime(2012, 1, 31), datetime(2012, 4, 30)]
a = pandas.Series(data=a_values, index=a_index)
aa_values = [6419, 5989, 6006]
aa_index = [datetime(2011, 9, 30), datetime(2011, 12, 31), datetime(2012, 3, 31)]
aa = pandas.Series(data=aa_values, index=aa_index)
apol_values = [1100, 1179, 969]
apol_index = [datetime(2011, 8, 31), datetime(2011, 11, 30), datetime(2012, 2, 29)]
apol = pandas.Series(data=apol_values, index=apol_index)
以下は、データがテーブルでどのように表示されるかです (APOL の 3 番目の値は表示されていません)。
目標は、3 つのデータセットを比較できるように、データをカレンダーの四半期マーカーに揃えることです。以下の日付を見てみると、2012 年 3 月、2011 年 12 月、2011 年 9 月が妥当な指標のように思えます。
fill_method='ffill' を使用した出力は次のとおりです。
In [6]: a.resample('Q', fill_method='ffill')
Out[6]:
2011-12-31 1728
2012-03-31 1635
2012-06-30 1733
Freq: Q-DEC
In [7]: aa.resample('Q', fill_method='ffill')
Out[7]:
2011-09-30 6419
2011-12-31 5989
2012-03-31 6006
Freq: Q-DEC
In [8]: apol.resample('Q', fill_method='ffill')
Out[8]:
2011-09-30 1100
2011-12-31 1179
2012-03-31 969
Freq: Q-DEC
次のようになります。
各シリーズの最新の数字が並んでいないことに注目してください。
そして、fill_method='bfill' を使用した出力は次のとおりです。
In [9]: a.resample('Q', fill_method='bfill')
Out[9]:
2011-12-31 1635
2012-03-31 1733
2012-06-30 NaN
Freq: Q-DEC
In [10]: aa.resample('Q', fill_method='bfill')
Out[10]:
2011-09-30 6419
2011-12-31 5989
2012-03-31 6006
Freq: Q-DEC
In [11]: apol.resample('Q', fill_method='bfill')
Out[11]:
2011-09-30 1179
2011-12-31 969
2012-03-31 NaN
Freq: Q-DEC
次のようになります。
繰り返しますが、シリーズの最新の数字は並んでいません。
resample()
これは、このシナリオで 期待される出力ですか?
上記の最新の 3 つの数字が一致し、他のすべてが適切に従う結果を得るにはどうすればよいですか?
編集: 目的の出力は次のようになります。