我想重写极地熊猫中的这句话
ts = aux.set_index(date_col, drop=True).resample("Q").sum()
我试过这个:
ts = aux.select(pl.all().sort_by(date_col)).set_sorted(date_col).collect().upsample(time_column=date_col, every=“3mo”)
成为一个懒惰的人。
我收到此错误:
线程 '' 在
Result::unwrap()
值上“调用 Err
”时感到惊慌:ComputeError(ErrString(“无法将 '2021-08-31 00:00:00' 提前 3 个月”。如果您试图获取每个月的最后一天,您可能想尝试 .dt.month_end
"))', /Users/runner/work/polars/polars/polars/polars-time/src/upsample.rs:120:83
如果您设置一个可重现的示例,将会有所帮助
这里不需要
upsample
,但是需要group_by_dynamic
。例如:
import polars as pl
import numpy as np
from datetime import date
df = pl.DataFrame({
'date': pl.date_range(date(2020, 10, 30), date(2021, 6, 1), eager=True),
})
df = df.with_columns(values=pl.int_range(0, len(df)))
print(df.group_by_dynamic('date', every='3mo').agg(pl.col('values').sum()))
输出
shape: (3, 2)
┌────────────┬────────┐
│ date ┆ values │
│ --- ┆ --- │
│ date ┆ i64 │
╞════════════╪════════╡
│ 2020-10-01 ┆ 1953 │
│ 2021-01-01 ┆ 9675 │
│ 2021-04-01 ┆ 11377 │
└────────────┴────────┘