在极坐标中按照 group_by 进行排序

问题描述 投票:0回答:1
import polars as pl

# Sample data
data = {
    'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
    'Value': [10, 20, 15, 25, 5, 30],
    'OtherColumn': [100, 200, 150, 250, 50, 300]
}

# Create DataFrame
df = pl.DataFrame(data)

# Group by 'Group' and sort within each group by 'Value'
sorted_df = df.group_by('Group').map_groups(lambda group_df: group_df.sort('Value'))

# Display the sorted DataFrame
print(sorted_df)

有没有一种原生的极地方法可以在

group_by
之后在组内进行排序而不使用
map_groups
? 我知道的另一种方法是指定多个列进行排序,但我想首先
group_by
,然后进行排序。

python-polars
1个回答
0
投票
df.select(pl.all().sort_by('Value').over('Group'))

┌───────┬───────┬─────────────┐
│ Group ┆ Value ┆ OtherColumn │
│ ---   ┆ ---   ┆ ---         │
│ str   ┆ i64   ┆ i64         │
╞═══════╪═══════╪═════════════╡
│ A     ┆ 10    ┆ 100         │
│ A     ┆ 20    ┆ 200         │
│ B     ┆ 15    ┆ 150         │
│ B     ┆ 25    ┆ 250         │
│ C     ┆ 5     ┆ 50          │
│ C     ┆ 30    ┆ 300         │
└───────┴───────┴─────────────┘
© www.soinside.com 2019 - 2024. All rights reserved.