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

Pandas如何根据DataFrame指定列分组添加连续整数序列新列

Pandas 分组生成组内顺序递增值实现

初始数据

首先构造示例DataFrame:

import pandas as pd
df =  pd.DataFrame({'A':[3,5,2,5,4,2,5,2,3,1,4,1], 'B':['x','y','x','x','y','z','z','x','y','y','x','z']})

需求说明

为DataFrame新增列C,赋值规则:

  • 按B列的不同取值分组
  • 每组内的行保留原表中的先后顺序
  • 组内从1开始依次赋值连续递增整数

预期最终效果:

A  B  C
0   3  x  1
1   5  y  1
2   2  x  2
3   5  x  3
4   4  y  2
5   2  z  1
6   5  z  2
7   2  x  4
8   3  y  3
9   1  y  4
10  4  x  5
11  1  z  3

实现代码

直接使用groupby配合cumcount方法即可,注意cumcount默认从0开始计数,需要+1调整起始值:

df['C'] = df.groupby('B').cumcount() + 1

逻辑说明

  • groupby('B')按B列值拆分分组,拆分过程不会改变原表行的相对顺序
  • cumcount()会对每个分组内的行,按原顺序返回从0开始的递增值
  • 加1后即可满足从1开始计数的要求,运行结果和预期完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:39:38