我想反转极坐标数据框中列的顺序,但仅限于组的范围。我知道这并不常见,但我偶然发现了一个用例,其中我需要对两个排序(正常和反向)进行对称分组操作。
这是一些示例代码:
import polars as pl
df = pl.DataFrame(
data={
'group': ['a', 'a', 'a', 'b', 'b'],
'value': [1, 2, 3, 4, 5],
}
)
print(df)
shape: (5, 2)
┌───────┬───────┐
│ group ┆ value │
│ --- ┆ --- │
│ str ┆ i64 │
╞═══════╪═══════╡
│ a ┆ 1 │
│ a ┆ 2 │
│ a ┆ 3 │
│ b ┆ 4 │
│ b ┆ 5 │
└───────┴───────┘
我的预期结果是:
shape: (5, 2)
┌───────┬───────┐
│ group ┆ value │
│ --- ┆ --- │
│ str ┆ i64 │
╞═══════╪═══════╡
│ a ┆ 3 │
│ a ┆ 2 │
│ a ┆ 1 │
│ b ┆ 5 │
│ b ┆ 4 │
└───────┴───────┘
是否还有一种方法可以通过
.with_columns()
调用来执行此类操作?
忽略
.with_columns()
调用,它实际上非常简单(就像极地中的许多事情一样):
df.group_by('group').map_groups(lambda grp: grp.reverse())