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

如何为DataFrame添加识别并计数重复索引值的列?

解决DataFrame中逐行统计重复索引出现次数的问题

嘿,我懂你要的是什么!你之前用groupby.size()得到的是每个ix的总出现次数,但你真正需要的是每个ix组内逐行递增的计数,对吧?这时候pandas的cumcount()方法就正好派上用场啦~

步骤1:构造示例数据

先把你提供的示例DataFrame构造出来,方便复现:

import pandas as pd

data = {
    'ix': [1, 2, 2, 2, 3, 4, 5, 5],
    'value': [12, 14, 15, 12, 10, 9, 14, 21]
}
df = pd.DataFrame(data)

步骤2:添加逐行累计计数列

使用groupby('ix')按ix分组后,调用cumcount()方法——这个方法会对每个分组内的行从0开始依次计数,我们只需要给结果加1,就能得到从1开始的序号:

df['dupes'] = df.groupby('ix').cumcount() + 1

最终结果

运行上述代码后,你就能得到期望的输出:

ixvaluedupes
01121
12141
22152
32123
43101
5491
65141
75212

补充说明

  • cumcount()默认从0开始计数,所以加1后就和你想要的“第1次出现、第2次出现”的逻辑完全匹配
  • 这个方法比你之前尝试的merge方式更简洁高效,不需要额外的合并操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 10:42:33