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

Pandas使用Groupby拼接列并获取每组最大值对应target_text的方法

Pandas分组聚合实现指定需求方案

核心实现代码

import pandas as pd

# 分组处理逻辑
def handle_group(group):
    # 计算当前组最高分
    max_score = group["score"].max()
    # 取最高分对应的target(若有多个同分最高可调整此处逻辑取全部)
    top_target = group[group["score"] == max_score]["target_text"].iloc[0]
    # 拼接target,最高分自动加HTML加粗标签
    joined_target = "<br />".join([
        f"<b>{text}</b>" if text == top_target else text
        for text in group["target_text"]
    ])
    return pd.Series({
        "target_text": joined_target,
        "score": max_score,
        "top": top_target
    })

# 按prefix、input_text分组聚合得到结果
result_df = df.groupby(["prefix", "input_text"], as_index=False).apply(handle_group).reset_index(drop=True)

逻辑说明

  • 直接通过groupby.apply一次性生成所有需求字段,无需额外执行去重操作,效率和可读性更高
  • 拼接时保留了你需要的<br />作为分隔符,最高分对应的target_text自动包裹<b>标签,渲染HTML时会自动加粗
  • 若同一分组存在多个同分最高的target_text,只需调整top_target取值逻辑,将所有最高分对应的文本纳入加粗范围即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 21:33:01