digamos que eu tenha esse dataframe polar
df = pl.DataFrame(
{
"group_col": ["g1", "g1", "g2"],
"b": [1, 2, 3],
"c": [4, 5, 6]
}
)
saída
shape: (3, 3)
┌───────────┬─────┬─────┐
│ group_col ┆ b ┆ c │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 │
╞═══════════╪═════╪═════╡
│ g1 ┆ 1 ┆ 4 │
│ g1 ┆ 2 ┆ 5 │
│ g2 ┆ 3 ┆ 6 │
└───────────┴─────┴─────┘
eu preciso fazer um grupo assim:
df.group_by("group_col").agg(
[
pl.col("c").filter((pl.col("b") >= 1) & (pl.col('b').max() == pl.col('b'))).max().alias("gte"),
]
)
saída:
shape: (2, 2)
┌───────────┬─────┐
│ group_col ┆ gte │
│ --- ┆ --- │
│ str ┆ i64 │
╞═══════════╪═════╡
│ g1 ┆ 5 │
│ g2 ┆ 6 │
└───────────┴─────┘
neste caso, por que o valor da coluna gte do grupo g1 não é nulo? dado o & (pl.col('b').max() == pl.col('b'))
filtro?