微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在python时间序列中更改重采样的顺序

我有以下python pandas timeseries

index = pandas.date_range('4/1/2012','9/30/2012', freq='M')
df = pandas.DataFrame(numpy.random.randn(len(index),1), index=index)
df = 
2012-04-30 1.06
2012-05-31 0.82
2012-06-30 0.65
2012-07-31 1.12
2012-08-31 1.09
2012-09-30 0.65

然后我将频率从一个月改为两个月

df_new = df.resample('2M')

重新采样功能从最早的日期开始到最后的日期.我得到的输出如下:

df_new = 
2012-04-30 ...
2012-06-30 ...
2012-08-31 ...
2012-10-30 ...

而我希望算法以相反的顺序重新采样.我希望输出像这样:

df_new = 
2012-05-31 ...
2012-07-31 ...
2012-09-30 ...

有谁可以帮助这个..提前感谢

解决方法:

好吧,这比它应该更复杂 – 但是这里有

In [282]: df
Out[282]:
                   0
2012-04-30  0.583255
2012-05-31 -0.247403
2012-06-30  0.816290
2012-07-31 -1.989587
2012-08-31  0.740463
2012-09-30  0.971749


In [279]: df.resample('2M', how='last', closed='left', loffset='-1M')
Out[279]:
                   0
2012-05-31 -0.247403
2012-07-31 -1.989587
2012-09-30  0.971749


how='last' gets last value in group
closed='left' forces first date[2012-04-30] to be the start of the group (maybe side effect)
loffset='-1M' adjust label appropriately

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐