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

为什么pandas按多列执行Groupby操作无法实现去重效果

问题原因
  • groupby方法仅完成数据分组逻辑,返回的是DataFrameGroupBy分组对象,你没有指定分组后的聚合规则,自然无法得到去重后的结果,也不会修改原DataFrame。
正确实现方案

方案1:使用专门的去重方法(推荐)

pandas内置的drop_duplicates方法就是用来按指定列删除重复行的,完全匹配你的需求,代码如下:

res = res.drop_duplicates(subset=["Time", "Vehicle1", "Vehicle2"], keep="first")

参数说明:

  • subset:指定判断重复的参考列,三个列值都相同才会被判定为重复行
  • keep="first":保留重复行中第一次出现的行,和你预期输出的结果完全一致

方案2:用groupby实现(不推荐,逻辑冗余)

如果一定要用groupby逻辑实现,需要在分组后指定取每个分组第一条数据的聚合操作:

res = res.groupby(["Time", "Vehicle1", "Vehicle2"], as_index=False).first()

as_index=False参数可以避免分组列被设置为行索引,保持原表的列结构。

内容的提问来源于stack exchange,提问作者Poyita de troya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:24:03