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

pandas使用groupby分组时如何去除聚合结果中的重复值

问题解决方法

核心原因:现有代码在groupby后直接将同一分组下的所有entity_text值转为元组,未过滤重复值,因此输出元组会保留重复项。

可选解决方案

方案1:保留元素出现顺序去重(推荐)

Python 3.7及以上版本字典默认保留插入顺序,可通过dict.fromkeys实现有序去重,不会打乱原数据中元素的首次出现顺序:

df_ = (
    df.groupby("entity_label", sort=True)["entity_text"]
    .apply(lambda x: tuple(dict.fromkeys(x).keys()))
    .reset_index(name="entity_text")
)

方案2:无需保留顺序时的简洁写法

如果不要求元组内元素和原数据出现顺序一致,可直接通过集合去重:

df_ = (
    df.groupby("entity_label", sort=True)["entity_text"]
    .apply(lambda x: tuple(set(x)))
    .reset_index(name="entity_text")
)

方案3:大数据量下的高效写法

如果数据量较大,可先对全表按分组键和目标列去重,再做分组聚合,减少分组计算时的处理量:

df_ = (
    df.drop_duplicates(subset=["entity_label", "entity_text"])
    .groupby("entity_label", sort=True)["entity_text"]
    .apply(tuple)
    .reset_index(name="entity_text")
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:15:00