将pandas中的时间序列重新采样到每周间隔

时间:2013-01-25 21:19:10

标签: python date pandas numpy interpolation

如何将熊猫中的时间序列重新采样到每周开始的周数?我看到有一个可选的关键字库,但它仅适用于短于一天的间隔。

4 个答案:

答案 0 :(得分:31)

您可以将anchored offsets传递给resample,以及其他涵盖此案例的选项。

例如星期一的每周频率:

ts.resample('W-MON')

答案 1 :(得分:2)

根据天数进行重新采样,然后每隔7天进行一次切片,您会更加安全,例如:

ts.resample('D').interpolate()[::7]

在github上的这个开放式pandas问题中查看其他方法的潜在问题:

https://github.com/pandas-dev/pandas/issues/16381

答案 2 :(得分:1)

安迪·海登斯(Andy Haydens)和denfromufas的回答都对我没有用,但这确实有效: df.resample('W', label='left', loffset=pd.DateOffset(days=1))

如该答案所述:https://stackoverflow.com/a/46712821/1743551

答案 3 :(得分:0)

您可能需要仔细检查您的结果。 loffset 似乎用于更改采样索引上的标签,而不是用于重新采样的实际基础时间段。如果您阅读最新的文档,则不推荐使用 loffset 参数,他们建议在重采样后修改索引,这再次指向更改标签而不是计算结果值的方式。 offset 关键字似乎适用,但我对此不太走运。

https://pandas.pydata.org/pandas-docs/dev/reference/api/pandas.DataFrame.resample.html