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

如何高效实现pandas DataFrame列值合并到单个单元格(含分组场景)

场景1:按A、B列分组后拼接组内值

实现代码

import pandas as pd

# 构造测试数据
df = pd.DataFrame({
    'A': [1,1,1,1],
    'B': [1,1,1,2],
    'l1': [2,3,1,2],
    'l2': [3,5,2,7],
    'l3': [4,7,9,8]
})

# 分组聚合实现拼接
result = df.groupby(['A', 'B'], as_index=False).agg(
    lambda col: ','.join(col.astype(str))
)

逻辑说明

  • groupby指定分组键A、B,as_index=False避免分组键转为索引
  • 聚合函数先将列值转为字符串类型,再用逗号拼接,避免数值类型直接拼接报错
  • 基于pandas原生矢量化运算实现,处理效率远高于手动循环遍历

场景2:无分组键,全列所有值拼接为单行

实现代码

# 构造测试数据
df2 = pd.DataFrame({
    'l1': [2,3,1,2],
    'l2': [3,5,2,7],
    'l3': [4,7,9,8]
})

# 全列聚合后转单行DataFrame
result2 = df2.agg(lambda col: ','.join(col.astype(str))).to_frame().T

逻辑说明

  • 直接对全列执行聚合拼接逻辑,不需要分组
  • to_frame().T将聚合得到的Series转为预期的单行DataFrame格式

扩展说明

如果需要保留数值类型不需要转字符串拼接,可将拼接逻辑替换为lambda col: list(col)或者lambda col: tuple(col),直接将同组/同列值存入列表/元组格式的单元格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:36:01