Как сделать роллинг(), сгруппированный по дням в час в Polars?Python

Программы на Python
Anonymous
Как сделать роллинг(), сгруппированный по дням в час в Polars?

Сообщение Anonymous »

Предположим, у вас есть набор данных со следующим столбцом: Узел, Время, дата, Час, Сумма. Время распределяется по часам. date — это просто текущая дата, соответствующая времени. У вас должен быть только один экземпляр узла в час.
Каждый день, для каждого часа мне нужно среднее значение суммы за последний 31 день в этом часе. Вот первое, что я попробовал:

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

df.rolling('Time', period='31d', group_by=['date', 'Hour']).agg(pl.col('Amount').mean())
Я ожидал получить по одной строке в час в день, но получил такое же количество строк, как и исходный df:
Изображение

Что именно здесь рассчитывается и как я могу сделать то, что я хотите это сделать?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/770 ... -in-polars

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