You need to enable JavaScript to run this app. 如何在pandas中按分组生成排序后的连续编号列?
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas中按分组生成排序后的连续编号列?

实现方法

你可以直接用pandas的groupby+rank方法实现,一行代码即可完成需求:

import pandas as pd

# 构造测试用DataFrame,实际使用时替换成你自己的df即可
df = pd.DataFrame({
    'ID': [1,1,1,2,2,2,2],
    'Number': [2,1,4,1,3,4,5]
})

# 核心逻辑:按ID分组后对Number列生成连续排名
df['Consecutive Number'] = df.groupby('ID')['Number'].rank(method='dense').astype(int)

运行后输出的df就和你期望的结果完全一致。

参数说明

  • method='dense':指定排名规则为连续排名,即便存在重复值也不会出现排名跳号的情况,符合你要的连续编号需求
  • astype(int):rank方法默认返回浮点类型,加这个方法可以直接转成整数格式,和你示例的输出格式对齐

如果遇到同组内有相同Number值、需要按出现顺序分配不同排名的场景,把method参数改成'first'即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 18:54:02