somone可以解释我重新采样的过程吗?
例如,
In [53]: daily_3mo_treasury.resample('5Y').mean()
Out[53]:
1993-12-31 2.997120
1998-12-31 4.917730
2003-12-31 3.297176
2008-12-31 2.997204
2013-12-31 0.097330
2018-12-31 0.534476
我时间序列中的最后一个日期是2018-08-23 2.04
我真的希望从最近的年底重新采样,例如从2017-12-31
到2012-12-31
,等等。
我尝试过
end = daily_3mo_treasury.index.searchsorted(date(2017,12,31))
daily_3mo_treasury.iloc[:end].resample('5Y').mean()
In [66]: daily_3mo_treasury.iloc[:end].resample('5Y').mean()
Out[66]:
1993-12-31 2.997120
1998-12-31 4.917730
2003-12-31 3.297176
2008-12-31 2.997204
2013-12-31 0.097330
2018-12-31 0.333467
dtype: float64
daily_3mo_treasury.iloc[:end]
中的最后一个值为2017-12-29 1.37
我的第二个5年重采样为何没有结束2017-12-31
?
编辑:我的索引已排序。
答案 0 :(得分:0)
来自@ALollz-重新采样时,垃圾箱基于索引中的第一个日期。
sistart = daily_3mo_treasury.index.searchsorted(date(1992,12,31))
siend = daily_3mo_treasury.index.searchsorted(date(2017,12,31))
In [95]: daily_3mo_treasury.iloc[sistart:siend].resample('5Y').mean()
Out[95]:
1992-12-31 3.080000
1997-12-31 4.562246
2002-12-31 4.050696
2007-12-31 2.925971
2012-12-31 0.360775
2017-12-31 0.278233
dtype: float64