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

如何为Pandas DataFrame的Key列唯一值生成递增计数器列

为DataFrame的重复Key值创建递增计数列

问题描述

现有包含Key列的DataFrame,数据如下:

Key
----
1234
1234
1234
5678
6789
7890
7890
6789
2345

需要新增名为Counter的列,对每个Key的出现顺序进行递增计数,最终得到如下结果:

Key     Counter
----    -------
1234       1
1234       2
1234       3
5678       1
6789       1
7890       1
7890       2
6789       2
2345       1

注:无需统计每个Key的总出现次数,该需求可通过value_counts()或groupby('Key').count()实现,本次仅关注按出现顺序的递增计数。

解决方案

使用pandas的groupby()结合cumcount()方法即可实现:

import pandas as pd

# 构造示例DataFrame(若已有现成DataFrame可跳过此步)
data = {'Key': [1234, 1234, 1234, 5678, 6789, 7890, 7890, 6789, 2345]}
df = pd.DataFrame(data)

# 生成Counter列
df['Counter'] = df.groupby('Key').cumcount() + 1

原理说明

  • groupby('Key'):将DataFrame按Key列的唯一值分组,把相同Key的行归为一组。
  • cumcount():对每组内的行从0开始依次计数,返回每组内的位置序号。
  • 加1操作:将计数从0起始改为1起始,匹配需求中的计数格式。

执行上述代码后,df将包含目标Counter列,结果与预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:20:46