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
,然后进行排序。
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 │
└───────┴───────┴─────────────┘