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

Python Pandas中如何为重复ID的行生成自增编号列

实现代码

直接使用Pandas内置的分组累计计数功能即可完成需求,完整可运行代码如下:

import pandas as pd

# 构造原始DataFrame
data_1 = {'ID': ['001', '003', '001','002','002','002'], 'Name': ["XX1", "XX3", "XX1", "XX2", "XX2", "XX2"]} 
df = pd.DataFrame(data_1)  

# 生成自增Number列
df['Number'] = df.groupby('ID').cumcount() + 1

# 验证输出结果和期望一致
print(df)

原理说明

  • df.groupby('ID') 按照ID字段分组,所有相同ID的行会被归为同一个分组
  • cumcount() 会对每个分组内的行按原始表的顺序进行计数,默认从0开始,加1之后就可以实现首次出现编号为1、后续重复依次递增的要求
  • 该方法不会打乱原始表的行顺序,输出结果完全匹配你给出的期望示例

如果你的业务逻辑中需要同时以ID和Name两个字段作为重复判定的依据,只需要把分组逻辑改成df.groupby(['ID', 'Name'])即可,结果不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:57:03