Прокатка group_by, но усечение каждого значения в полночьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Прокатка group_by, но усечение каждого значения в полночь

Сообщение Anonymous »

Скажем, у меня есть следующий DataFrame:
import polars as pl
import numpy as np
from datetime import datetime

df = pl.DataFrame({'ts': pl.datetime_range(datetime(2020, 1, 1), datetime(2020, 1, 10), '1h', eager=True)})
df = df.with_columns(value=pl.Series(np.arange(len(df))))

In [62]: df
Out[62]:
shape: (217, 2)
┌─────────────────────┬───────┐
│ ts ┆ value │
│ --- ┆ --- │
│ datetime[μs] ┆ i64 │
╞═════════════════════╪═══════╡
│ 2020-01-01 00:00:00 ┆ 0 │
│ 2020-01-01 01:00:00 ┆ 1 │
│ 2020-01-01 02:00:00 ┆ 2 │
│ 2020-01-01 03:00:00 ┆ 3 │
│ … ┆ … │
│ 2020-01-09 21:00:00 ┆ 213 │
│ 2020-01-09 22:00:00 ┆ 214 │
│ 2020-01-09 23:00:00 ┆ 215 │
│ 2020-01-10 00:00:00 ┆ 216 │
└─────────────────────┴───────┘

Что я хотел бы получить для каждой строки:
  • рассмотреть все строки, которые находятся между 3 днями раньше и в полночь того же дня
  • вычислите среднее значение
Так, например, для строки 2020- 01-09 23:00:00, я хотел бы рассмотреть строки, где ts больше или равно 2020-01-06 00:00:00 и меньше 2020- 01-09 00:00:00 и возьмите среднее значение столбца «значение».
Ожидаемый результат:
shape: (217, 2)
┌─────────────────────┬───────┐
│ ts ┆ value │
│ --- ┆ --- │
│ datetime[μs] ┆ i64 │
╞═════════════════════╪═══════╡
│ 2020-01-01 00:00:00 ┆ null │
│ 2020-01-01 01:00:00 ┆ null │
│ 2020-01-01 02:00:00 ┆ null │
│ 2020-01-01 03:00:00 ┆ null │
│ … ┆ … │
│ 2020-01-09 21:00:00 ┆ 155.5 │
│ 2020-01-09 22:00:00 ┆ 155.5 │
│ 2020-01-09 23:00:00 ┆ 155.5 │
│ 2020-01-10 00:00:00 ┆ 179.5 │
└─────────────────────┴───────┘

Как я рассчитал ожидаемый результат:
df.filter(
(pl.col("ts") >= datetime(2020, 1, 6)) & (pl.col("ts") < datetime(2020, 1, 9))
).mean()
df.filter(
(pl.col("ts") >= datetime(2020, 1, 7)) & (pl.col("ts") < datetime(2020, 1, 10))
).mean()


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как создать объект Java Date в полночь сегодня и в полночь завтра?
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Pandas ежемесячная прокатка
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Объект 'nonetype' не имеет атрибута 'Group' Group 'Создание пакета с кликом
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • По неизвестной причине служба Apache2 перезапускается каждую полночь (Ubuntu 20.24) [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    82 Просмотры
    Последнее сообщение Anonymous
  • Необычный всплеск количества потоков каждую полночь в приложении Spring Boot
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

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