28

如何将 pandas 中的时间序列重新采样为每周从任意一天开始的每周频率?我看到有一个可选的关键字库,但它只适用于短于一天的间隔。

4

4 回答 4

64

您可以将锚定偏移量传递给resample,以及它们涵盖这种情况的其他选项。

例如从星期一开始的每周频率:

ts.resample('W-MON')
于 2013-01-25T22:11:16.890 回答
5

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

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

在 github 上的这个 open pandas issue 中查看其他方法的潜在问题:

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

于 2017-05-18T16:20:35.563 回答
4

Andy Haydens 和 denfromufas 的回答都没有对我有用,但确实如此: df.resample('W', label='left', loffset=pd.DateOffset(days=1))

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

于 2020-02-25T22:19:51.720 回答
0

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

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

于 2021-04-19T15:27:48.567 回答