Выражение вложенного окнаPython

Программы на Python
Ответить
Anonymous
 Выражение вложенного окна

Сообщение Anonymous »

Я создаю несколько выражений для создания функций, и мне хотелось бы создать выражение, которое:
  • Вычисляет account_length как совокупное количество записей на аккаунт
  • Затем рассчитывает медиану account_length на status_date
Есть ли способ сделать это в одном выражении, без использования .with_columns() дважды?
df = pl.DataFrame({
"account_id": ["A", "A", "A", "B", "B", "C", "C", "C", "C"],
"status_date": ["2023-01-01", "2023-01-02", "2023-01-03", "2023-01-01", "2023-01-02", "2023-01-01", "2023-01-02", "2023-01-03", "2023-01-04"],
"value": [10, 20, 30, 40, 50, 60, 70, 80, 90]
})

print("Original data:")
print(df)

Original data:
shape: (9, 3)
┌────────────┬─────────────┬───────┐
│ account_id ┆ status_date ┆ value │
│ --- ┆ --- ┆ --- │
│ str ┆ str ┆ i64 │
╞════════════╪═════════════╪═══════╡
│ A ┆ 2023-01-01 ┆ 10 │
│ A ┆ 2023-01-02 ┆ 20 │
│ A ┆ 2023-01-03 ┆ 30 │
│ B ┆ 2023-01-01 ┆ 40 │
│ B ┆ 2023-01-02 ┆ 50 │
│ C ┆ 2023-01-01 ┆ 60 │
│ C ┆ 2023-01-02 ┆ 70 │
│ C ┆ 2023-01-03 ┆ 80 │
│ C ┆ 2023-01-04 ┆ 90 │
└────────────┴─────────────┴───────┘

Я хотел бы сделать:
df = df.with_columns(
pl.col("status_date")
.cum_count()
.over("account_id")
.median()
.over("status_date")
.alias("account_length_median")
)

Out:
Error: ComputeError: cannot nest window expressions


Подробнее здесь: https://stackoverflow.com/questions/797 ... expression
Ответить

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

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

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

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

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