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

如何基于Pandas DataFrame中某列重复值生成带递增序号的新列?

解决方案:为重复ID生成带递增序号的新列

刚好之前处理过类似需求,用Pandas几行代码就能搞定!先还原你的示例数据:

import pandas as pd

# 构造你给出的DataFrame
df = pd.DataFrame({'id': ['abc', 'def', 'ghi', 'abc', 'abc', 'xyz', 'def']})

接下来用groupby + cumcount的组合实现你的需求:

# 分组后计算组内累计序号,加1让序号从1开始,再和原ID拼接
df['id1'] = df['id'] + (df.groupby('id').cumcount() + 1).astype(str)

运行后得到的结果完全符合你的期望:

id    id1
0  abc  abc1
1  def  def1
2  ghi  ghi1
3  abc  abc2
4  abc  abc3
5  xyz  xyz1
6  def  def2

简单解释下原理:

  • df.groupby('id'):把DataFrame按id列的值分组,所有相同ID的行会被归为一组
  • cumcount():为每个组内的行分配从0开始的连续整数(比如第一个abc是0,第二个是1,第三个是2)
  • 加1之后就变成了从1开始的序号,转成字符串后和原id值拼接,就得到了带序号的id1列

内容的提问来源于stack exchange,提问作者Deepak ..G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:19:50