You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Polars分组上采样(Upsampling)行为不符合预期的问题咨询

Polars分组上采样(Upsampling)行为不符合预期的问题咨询

我在使用Polars处理时间序列数据时,遇到了一个分组上采样的结果和预期不符的问题,想请教这是Polars的bug,还是我的代码用法有误?

首先是我的原始数据代码:

import polars as pl
from datetime import datetime

df = pl.DataFrame(
    {
        "time": [
            datetime(2021, 2, 1),
            datetime(2021, 4, 2),
            datetime(2021, 5, 4),
            datetime(2021, 6, 6),
            datetime(2021, 6, 8),
            datetime(2021, 7, 10),
            datetime(2021, 8, 18),
            datetime(2021, 9, 20),
        ],
        "groups": ["A", "B", "A", "B","A","B","A","B"],
        "values": [0, 1, 2, 3,4,5,6,7],
    }
)

接下来是我写的上采样和测试逻辑代码:

(
    df
    .upsample(
        time_column="time", 
        every="1d", 
        group_by="groups", 
        maintain_order=True
        )
    .group_by('groups')
    .agg(pl.col('time').diff().max())
    
)

运行这段代码后,得到的输出结果是:

shape: (3, 2)
┌────────┬──────────────┐
│ groups ┆ time         │
│ ---    ┆ ---          │
│ str    ┆ duration[μs] │
╞════════╪══════════════╡
│ A      ┆ 92d          │
│ null   ┆ 2d           │
│ B      ┆ 72d          │
└────────┴──────────────┘

我原本预期上采样后,每组内相邻时间的间隔应该都是1天,所以diff().max()的结果应该是1天,但实际得到的却是大得多的时长,比如A组是92天,甚至还出现了一个null分组。这完全不符合我的预期,想知道问题出在哪里?

备注:内容来源于stack exchange,提问作者JohnRos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 18:53:11