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

pandas中groupby后使用apply()函数生成分组冒号分隔列表的方法

实现方案

最简洁的Pythonic写法可以用groupby+agg一步完成,不需要额外处理索引和列名重命名:

result = df.groupby('c1', as_index=False).agg(
    list=('c2', lambda x: ':'.join(x.astype(str)))
)

代码说明

  • groupby('c1', as_index=False):按c1列分组,as_index=False参数避免分组键变成索引,输出后直接为普通列
  • agg()方法直接指定新列名为list,聚合逻辑为对每组的c2列操作:
    • 先把整数类型的c2值转为字符串类型
    • 用join方法以冒号为分隔符拼接所有字符串

完整可运行示例

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'c1': ['B', 'A', 'B', 'A', 'A'],
    'c2': [1, 2, 5, 3, 7]
})

# 分组拼接
result = df.groupby('c1', as_index=False).agg(
    list=('c2', lambda x: ':'.join(x.astype(str)))
)

print(result)

输出结果

c1   list
0  A  2:3:7
1  B    1:5

内容的提问来源于stack exchange,提问作者Luis Alejandro Vargas Ramos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:54:06