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

如何在DataFrame中按索引分组并拼接行字符串?

解决按索引分组拼接字符串的问题

问题原因

你用transform方法的核心问题是:它会把分组聚合后的结果广播回原DataFrame的每一行,所以最终行数和原数据完全一致,无法得到每个索引组只保留一行的聚合结果。

正确解决方案

要实现按索引分组拼接字符串,需要使用聚合类方法,以下是两种常用方式:

方法1:groupby + agg(简洁高效)

直接指定拼接规则,可自定义分隔符:

# 用空格分隔拼接,匹配你示例的第一行结果
result = df.groupby(df.index)['text'].agg(' '.join).to_frame()

# 如果需要无分隔符拼接(如示例第二行的"red is blue.blue is red"),改用空字符串:
# result = df.groupby(df.index)['text'].agg(''.join).to_frame()

方法2:groupby + apply + str.cat

适合更复杂的拼接场景,灵活性更高:

# 空格分隔拼接
result = df.groupby(df.index)['text'].apply(lambda x: x.str.cat(sep=' ')).to_frame()

# 无分隔符拼接
# result = df.groupby(df.index)['text'].apply(lambda x: x.str.cat(sep='')).to_frame()

结果说明

执行上述代码后,会生成你需要的DataFrame结构:每个索引对应一行,该行内容是该索引下所有text字符串的拼接结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:31:06