按极坐标中的组反转顺序

问题描述 投票:0回答:1

我想反转极坐标数据框中列的顺序,但仅限于组的范围。我知道这并不常见,但我偶然发现了一个用例,其中我需要对两个排序(正常和反向)进行对称分组操作。

这是一些示例代码:

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()
调用来执行此类操作?

python python-polars
1个回答
0
投票

忽略

.with_columns()
调用,它实际上非常简单(就像极地中的许多事情一样):

df.group_by('group').map_groups(lambda grp: grp.reverse())
© www.soinside.com 2019 - 2024. All rights reserved.