在pandas中将时间序列重采样为每周间隔

31 投票
4 回答
73424 浏览
提问于 2025-04-17 13:42

我想知道怎么在pandas中把一个时间序列重新采样成每周一次,而这周的开始日可以是任意一天。我注意到有一个可选的参数叫做base,但它只适用于少于一天的时间间隔。

4 个回答

4

安迪·海登斯和denfromufa的回答都没能解决我的问题,但这个方法有效:

df.resample('W', label='left', loffset=pd.DateOffset(days=1))

就像那个回答里描述的那样: https://stackoverflow.com/a/46712821/1743551

5

使用基于天数的重采样,然后每隔7天切片,这样会更安全,比如:

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

在GitHub上可以看到其他方法存在的根本问题,具体可以查看这个pandas的讨论:

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

77

你可以给 锚定偏移量 传递给 resample,在其他选项中,他们也讨论了这种情况。

比如说,从星期一开始的每周频率:

ts.resample('W-MON')

撰写回答