Предположим, теперь у нас есть LazyFrame:
Код: Выделить всё
df = pl.LazyFrame({"Date": ["2023-01-01", "2023-01-02", "2023-01-03", "2023-01-05", "2023-01-10", "2023-01-11", "2023-01-12"], "Pattern": [True, True, False, True, False, False, True]})
┌────────────┬─────────┐
│ Date ┆ Pattern │
│ --- ┆ --- │
│ str ┆ bool │
╞════════════╪═════════╡
│ 2023-01-01 ┆ true │
│ 2023-01-02 ┆ true │
│ 2023-01-03 ┆ false │
│ 2023-01-05 ┆ true │
│ 2023-01-10 ┆ false │
│ 2023-01-11 ┆ false │
│ 2023-01-12 ┆ true │
└────────────┴─────────┘
Код: Выделить всё
┌────────────┬─────────┐
│ Date ┆ Count │
│ --- ┆ --- │
│ str ┆ int │
╞════════════╪═════════╡
│ 2023-01-01 ┆ null │
│ 2023-01-02 ┆ null │
│ 2023-01-03 ┆ 2 │
│ 2023-01-05 ┆ 2 │
│ 2023-01-10 ┆ 1 │
│ 2023-01-11 ┆ 1 │
│ 2023-01-12 ┆ 1 │
└────────────┴─────────┘
В pandas этого можно добиться следующим образом:
Код: Выделить всё
df["Pattern"].apply(lambda x: x == True).rolling(3, min_periods = 0).sum()
Подробнее здесь: https://stackoverflow.com/questions/758 ... ling-count
Мобильная версия