如何在极坐标中编写这个 pandas 函数

问题描述 投票:0回答:1

我想重写极地熊猫中的这句话

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

python-polars
1个回答
1
投票

如果您设置一个可重现的示例,将会有所帮助

这里不需要

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  │
└────────────┴────────┘
© www.soinside.com 2019 - 2024. All rights reserved.