如何在Polars中使用group_by将DataFrame行分组为列表
Polars分组并将列值转为列表
原始数据
import polars as pl df = pl.DataFrame({ "Letter": ["A", "A", "B", "B", "B", "C", "C", "D", "D", "E"], "Value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] })
需求
按Letter字段分组,将每组对应的Value值收集为列表。
Pandas实现的错误说明
若尝试用类似Pandas的写法会触发错误:
df.group_by("a")["b"].apply(list)
报错信息:
TypeError: 'GroupBy' object is not subscriptable
Polars解决方案
使用Polars的group_by配合agg方法,通过pl.col("Value").list()聚合生成列表:
result = df.group_by("Letter").agg(pl.col("Value").list()) print(result)
输出结果
┌────────┬───────────┐ │ Letter ┆ Value │ │ --- ┆ --- │ │ str ┆ list[i64] │ ╞════════╪═══════════╡ │ A ┆ [1, 2] │ │ B ┆ [3, 4, 5] │ │ C ┆ [6, 7] │ │ D ┆ [8, 9] │ │ E ┆ [10] │ └────────┴───────────┘
内容的提问来源于stack exchange,提问作者Talha Tayyab
相关产品推荐
相关产品推荐

