Как выполнить фильтр во время группировки в Polars?Python

Программы на Python
Ответить
Anonymous
 Как выполнить фильтр во время группировки в Polars?

Сообщение Anonymous »

Я хотел бы выполнить группировку в кадре данных Polars ниже:
import polars as pl

df = pl.DataFrame({
'A' : ['foo', 'bar', 'foo', 'bar', 'foo', 'bar'],
'B' : ['one', 'one', 'two', 'three', 'two', 'two'],
'C' : [1, 5, 5, 2, 5, 7],
'D' : [2.0, 5., 8., 1., 2., 9.]
})

Я попытался выполнить следующую операцию:
df.group_by('A').agg( pl.col('C') >= pl.col('C').mean() )

shape: (2, 2)
┌─────┬─────────────────────┐
│ A ┆ C │
│ --- ┆ --- │
│ str ┆ list[bool] │
╞═════╪═════════════════════╡
│ foo ┆ [false, true, true] │
│ bar ┆ [true, false, true] │
└─────┴─────────────────────┘

Однако результат не тот, который мне нужен, а именно: для каждой группы «A» должны быть возвращены значения C, большие или равные среднему значению в каждой группе A.
shape: (2, 2)
┌─────┬───────────┐
│ A ┆ C │
│ --- ┆ --- │
│ str ┆ list[i64] │
╞═════╪═══════════╡
│ foo ┆ [5, 5] │
│ bar ┆ [5, 7] │
└─────┴───────────┘


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

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

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

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

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

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