You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Python Polars中如何聚合时拼接列表而非生成嵌套列表?

在Python Polars中聚合时拼接列表而非生成嵌套列表

直接用df.group_by('id').agg("name")会把每行的列表当成独立元素收集,生成嵌套列表,但我们可以通过以下方法把分组内的列表元素合并成一个扁平列表。

拿你给出的示例数据来说:

import polars as pl

df = pl.DataFrame({
    'id': [1, 1],
    'name': [["Bob"], ["Mary", "Sue"]],
})

直接聚合得到的是嵌套列表:

idname
1[["Bob"], ["Mary", "Sue"]]

方法一:使用flatten()展平后聚合

在聚合时对name列调用flatten(),把分组内所有列表的元素展平后再聚合:

result = df.group_by('id').agg(pl.col('name').flatten())

执行后得到期望的结果:

idname
1["Bob", "Mary", "Sue"]

方法二:使用list.concat()合并列表

用Polars的list.concat()函数直接合并分组内的所有列表,也能实现相同效果:

result = df.group_by('id').agg(pl.col('name').list.concat())

内容的提问来源于stack exchange,提问作者bwooster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 05:42:36