Группа полярностей, возвращая значение, когда фильтры не совпадаютPython

Программы на Python
Ответить
Anonymous
 Группа полярностей, возвращая значение, когда фильтры не совпадают

Сообщение Anonymous »

Предположим, у меня есть фрейм данных Polars

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

import polars as pl

df = pl.from_repr("""
┌───────────┬─────┬─────┐
│ group_col ┆ b   ┆ c   │
│ ---       ┆ --- ┆ --- │
│ str       ┆ i64 ┆ i64 │
╞═══════════╪═════╪═════╡
│ g1        ┆ 1   ┆ 4   │
│ g1        ┆ 2   ┆ 5   │
│ g2        ┆ 3   ┆ 6   │
└───────────┴─────┴─────┘
""")
Мне нужно создать группу следующим образом:

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

df.group_by("group_col").agg(
pl.col("c").filter((pl.col("b") >= 1) & (pl.col('b').max() == pl.col('b'))).max().alias("gte")
)

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

shape: (2, 2)
┌───────────┬─────┐
│ group_col ┆ gte │
│ ---       ┆ --- │
│ str       ┆ i64 │
╞═══════════╪═════╡
│ g1        ┆ 5   │
│ g2        ┆ 6   │
└───────────┴─────┘
В этом случае, почему значение в столбце gte в группе g1 не равно нулю? учитывая фильтр & (pl.col('b').max() == pl.col('b'))?


Подробнее здесь: https://stackoverflow.com/questions/773 ... -not-match
Ответить

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

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

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

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

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