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

去重Client Number列时如何保留正确的Call Count值?

解决方案

问题根源

你之前的代码有两个关键错误:

  • cumcount() 是给每组内的行生成递增序号(从0开始),加1后会变成1、2、3...,这不是统计每组的总呼叫次数,所以Call Count值完全错了。
  • drop_duplicates(subset=["Client Number"], keep=False) 会删除所有存在重复的客户行(比如Bob的所有记录都会被删掉),而不是保留唯一的客户条目。

正确实现方式

方式1:先统计正确次数,再生成去重结果

如果还没完成呼叫次数的正确统计,直接用分组统计生成唯一客户的结果:

# 统计每个客户的总呼叫次数,生成去重后的DataFrame
call_count_result = df1.groupby('Client Number').size().reset_index(name='Call Count')

方式2:基于已有正确数据去重

如果你的原DataFrame里,同一客户的Call Count已经是正确的总数(比如示例里Bob的Call Count全是3),直接去重时保留任意一行即可:

# 保留每个客户的第一行,Call Count自然是正确值
df2 = df1.drop_duplicates(subset=["Client Number"], keep='first')
# 也可以保留最后一行,效果一样
# df2 = df1.drop_duplicates(subset=["Client Number"], keep='last')

方式3:用聚合函数确保数据准确性

如果担心原数据里同一客户的Call Count可能存在不一致,用聚合函数取最大值/平均值(正确情况下同一客户的Call Count应该相同):

df2 = df1.groupby('Client Number').agg({'Call Count': 'max'}).reset_index()

最终效果

以上任意一种方法都会得到你想要的正确结果:

Client NumberCall Count
Bob3
John1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:35:19