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

如何将dataframe中同组多行合并为单行并保留原索引到新列?

解决方案

直接使用pandas内置的groupby+agg聚合即可实现,代码如下:

import pandas as pd

# 第一步:将原索引转为普通列,方便后续聚合存储
df = df.reset_index(names="ori_idx")

# 第二步:按姓名列分组,分别聚合原索引和column2内容
res_df = df.groupby("column1", as_index=False).agg(
    # 新column2存原索引拼接字符串
    column2=("ori_idx", lambda ser: ",".join(ser.astype(str))),
    # 新column3存原column2内容拼接字符串
    column3=("column2", lambda ser: ",".join(ser))
)

# 可选:如果需要重置结果表的连续行索引,加下面这行
res_df = res_df.reset_index(drop=True)

如果你的pandas版本低于1.5.0,不支持reset_index的names参数,可以把第一步的代码替换为:

df = df.rename_axis("ori_idx").reset_index()

以上代码直接运行就能得到你期望的输出格式,不需要额外依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:27:04