Code: Select all
import polars as pl
df = pl.from_repr("""
┌───────────┬─────┬─────┐
│ group_col ┆ b   ┆ c   │
│ ---       ┆ --- ┆ --- │
│ str       ┆ i64 ┆ i64 │
╞═══════════╪═════╪═════╡
│ g1        ┆ 1   ┆ 4   │
│ g1        ┆ 2   ┆ 5   │
│ g2        ┆ 3   ┆ 6   │
└───────────┴─────┴─────┘
""")
Code: Select all
df.group_by("group_col").agg(
pl.col("c").filter((pl.col("b") >= 1) & (pl.col('b').max() == pl.col('b'))).max().alias("gte")
)
Code: Select all
shape: (2, 2)
┌───────────┬─────┐
│ group_col ┆ gte │
│ ---       ┆ --- │
│ str       ┆ i64 │
╞═══════════╪═════╡
│ g1        ┆ 5   │
│ g2        ┆ 6   │
└───────────┴─────┘
 Mobile version
 Mobile version