【问题标题】:Resample time series in pandas to a weekly interval将 pandas 中的时间序列重新采样为每周间隔
【发布时间】:2013-01-09 22:24:03
【问题描述】:

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

【问题讨论】:

    标签: python date pandas numpy interpolation


    【解决方案1】:

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

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

    ts.resample('W-MON')
    

    【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 这是如何计算这些值的?它返回平均值吗?
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-03-12
        • 2018-03-14
        • 1970-01-01
        • 2014-07-24
        • 1970-01-01
        • 2019-01-18
        • 2015-11-07
        • 1970-01-01
        • 2013-04-29
        相关资源
        最近更新 更多