You need to enable JavaScript to run this app. pandas按单列分组将其他列值聚合为列表的最高效方法
优惠活动
大模型
产品
解决方案
定价
更多

pandas按单列分组将其他列值聚合为列表的最高效方法

pandas按指定列合并行并汇总其余列为列表的高效实现

功能目标

按指定列的相同取值合并数据行,将其余所有列的匹配取值汇总为单个列表。

测试样例

原始DataFrame构造

import pandas as pd

df = pd.DataFrame({
    'Animal': ['Falcon', 'Parrot', 'Parrot', 'Falcon'],
    'Max Speed': ['380.', '370.', '24.', '26.']
})

原始数据输出:

Animal Max Speed
0  Falcon      380.
1  Parrot      370.
2  Parrot       24.
3  Falcon      26.

现有实现逻辑

当前使用的实现代码:

test = df.groupby(['Animal']).agg(lambda x: tuple(x)).applymap(list).reset_index()

对应输出结果:

Animal    Max Speed
0  Falcon  [380., 26.]
1  Parrot  [370., 24.]

效率优化方案

无需依赖自定义lambda和二次格式转换,直接使用pandas原生聚合逻辑即可得到完全一致的输出结果,运行效率更高:

test = df.groupby('Animal', as_index=False).agg(list)
  • 原生list聚合走底层C实现路径,没有自定义lambda的Python层逐组调用开销
  • 聚合阶段直接生成列表类型结果,不需要额外调用applymap完成tuple到list的转换,减少一次全量数据遍历
  • as_index=False可直接完成分组后的索引重置,无需单独调用reset_index()
    该实现保留了原数据组内的行顺序,在十万行以上的大数据量场景下性能可提升数倍,输出结果与原有实现完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 19:27:03