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

Python如何为Pandas DataFrame指定列重复值新增出现次序标记列

实现方法

你可以直接使用pandas的groupby + cumcount组合语法完成需求,步骤如下:

  1. 首先构造测试用的DataFrame(如果已有目标DataFrame可跳过这步)
import pandas as pd

df = pd.DataFrame({
    'v1': [1,2,2,3,4,5],
    'v2': [2,3,1,4,5,3]
})
  1. 新增dup标记列
# cumcount默认从0开始计数,加1后就得到从1开始的同值出现次序
df['dup'] = df.groupby('v1').cumcount() + 1
  1. 结果验证
    执行完上述代码后打印df,即可得到你需要的输出:
v1  v2  dup
0   1   2    1
1   2   3    1
2   2   1    2
3   3   4    1
4   4   5    1
5   5   3    1

原理解释

  • groupby('v1')会将v1列取值相同的行划分为同一组
  • cumcount()会保留原始行顺序,对每个分组内的行从0开始依次计数
  • 最终计数结果加1,就得到了从1开始的同值出现顺序标记,即使某个值重复出现N次,也会按1到N依次标记。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:54:03