Python-поляры: расширение окна group_byPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python-поляры: расширение окна group_by

Сообщение Anonymous »

Я хочу рассчитать агрегированные показатели с расширяющимся окном. По сути, учитывая следующий фрейм данных:

Код: Выделить всё

from datetime import date
import polars as pl
df = pl.DataFrame({"Day":[date(2022, 1, i) for i in range(1,10)], "value":[1,2,3,4,5,6,7,8,9]})

Код: Выделить всё

shape: (9, 2)
┌────────────┬───────┐
│ Day        ┆ value │
│ ---        ┆ ---   │
│ date       ┆ i64   │
╞════════════╪═══════╡
│ 2022-01-01 ┆ 1     │
│ 2022-01-02 ┆ 2     │
│ 2022-01-03 ┆ 3     │
│ 2022-01-04 ┆ 4     │
│ 2022-01-05 ┆ 5     │
│ 2022-01-06 ┆ 6     │
│ 2022-01-07 ┆ 7     │
│ 2022-01-08 ┆ 8     │
│ 2022-01-09 ┆ 9     │
└────────────┴───────┘
По сути, мне нужно следующее:

Код: Выделить всё

|--|
|-----|
|--------|
Я пытался использовать прокрутку и group_by_dynamic, но мне не удалось исправить начальное время каждой группы по первой временной метке. Мой текущий обходной путь выглядит примерно так:

Код: Выделить всё

date_range = pl.date_range(df.select("Day").min().row(0)[0], df.select("Day").max().row(0)[0], '1w', eager=True)

for timestamp in date_range:
print(df.filter(pl.col('Day').is_between(date_range[0], timestamp)))

Код: Выделить всё

shape: (1, 2)
┌────────────┬───────┐
│ Day        ┆ value │
│ ---        ┆ ---   │
│ date       ┆ i64   │
╞════════════╪═══════╡
│ 2022-01-01 ┆ 1     │
└────────────┴───────┘
shape: (8, 2)
┌────────────┬───────┐
│ Day        ┆ value │
│ ---        ┆ ---   │
│ date       ┆ i64   │
╞════════════╪═══════╡
│ 2022-01-01 ┆ 1     │
│ 2022-01-02 ┆ 2     │
│ 2022-01-03 ┆ 3     │
│ 2022-01-04 ┆ 4     │
│ 2022-01-05 ┆ 5     │
│ 2022-01-06 ┆ 6     │
│ 2022-01-07 ┆ 7     │
│ 2022-01-08 ┆ 8     │
└────────────┴───────┘
Это дает мне точную агрегацию, которая мне нужна, но я чувствую, что есть гораздо более эффективный способ сделать это - и мне особенно хотелось бы выполнять агрегацию в контексте group_by .


Подробнее здесь: https://stackoverflow.com/questions/747 ... w-group-by
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Объект 'nonetype' не имеет атрибута 'Group' Group 'Создание пакета с кликом
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Поляры: расширение окна в фиксированных точках
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Поляры: расширение окна в фиксированных точках
    Гость » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Гость
  • Поляры: как узнать количество столбцов в выражении поляры?
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Поляры: как узнать количество столбцов в выражении поляры?
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»