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

如何合并Python DataFrame中共享某一列值的行?

处理带共享前缀的DataFrame分组需求

看起来你是想对description列里共享相同前缀的行做分组处理对吧?比如AAAA:A、AAAA:B这些属于同一组,BBBB:A、BBBB:B属于另一组。这里给你几个Pandas原生的简洁实现方案,完全不用复杂操作:

方案1:提取前缀后分组(直观易懂)

先从description里拆分出前缀,再用这个前缀做分组,新手也能快速理解:

import pandas as pd

data = {
    "description": ["AAAA:A", "AAAA:B", "AAAA:C", "AAAA:D", "BBBB:A", "BBBB:B"],
    "sequence": ["AAAAAAAAAAA", "AAAAAAABBBBBB", "AAAAAAAACCCCCCC", "AAAAAAAADDDDDDD", "BBBBBBAAAAA", "BBBBBBBBBBBBB"]
}
df = pd.DataFrame(data)

# 按冒号分割,提取前缀部分
df["prefix"] = df["description"].str.split(":", expand=True)[0]

# 基于前缀分组
grouped = df.groupby("prefix")

# 遍历查看每个分组的内容
for prefix, group in grouped:
    print(f"=== 分组 {prefix} ===")
    print(group)

方案2:无新增列的直接分组(更简洁)

如果不想修改原DataFrame的结构,可以直接在groupby里处理前缀,一步到位:

# 直接通过lambda函数提取前缀分组,无需额外列
grouped = df.groupby(lambda idx: df["description"].iloc[idx].split(":")[0])

# 同样可以遍历分组
for prefix, group in grouped:
    print(f"=== 分组 {prefix} ===")
    print(group)

方案3:前缀长度固定时的高效分组

如果你的前缀长度是固定的(比如例子里都是4个字符),用字符串切片会比分割更快,适合大数据量场景:

# 前缀固定4位,直接切片取前4个字符分组
grouped = df.groupby(df["description"].str[:4])

# 查看分组结果
for prefix, group in grouped:
    print(f"=== 分组 {prefix} ===")
    print(group)

这几个方案都是轻量且高效的,完全符合你想要的「简洁直接」的要求。如果分组后还要做聚合、过滤之类的操作,直接在grouped对象上调用对应的方法就行(比如grouped.sum()、grouped.filter())。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:09:05