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

如何基于DataFrame中列A的相同值生成递增序列的新列

如何基于DataFrame中列A的相同值生成递增序列的新列

嗨,这问题其实很简单,用Pandas的分组计数功能就能轻松搞定!先看看你的示例数据:

import pandas as pd
df = pd.DataFrame.from_dict({'A':[1,1,2], 'B':[10,20,14], "C":[30,40,20]})

你需要的是按列A的取值分组,每组内生成从1开始的递增序号,当A的值切换到新的数值时,序号重置从头开始。这里可以用groupby()结合cumcount()方法:

# 生成新列newCol,组内从1开始递增
df['newCol'] = df.groupby('A').cumcount() + 1

运行这段代码后,你的DataFrame就会变成这样:

ABCnewCol
110301
120402
214201

简单解释下原理:

  • df.groupby('A'):把数据按照列A的不同值分成独立的小组(比如A=1是一组,A=2是另一组)
  • .cumcount():给每个小组内的行分配从0开始的连续整数
  • 加1是因为你想要的是从1开始的序号,要是想从0开始直接去掉+1就行

这样完全符合你的需求啦,当A的值保持相同时序号递增,切换新值就重置~

备注:内容来源于stack exchange,提问作者Shawn Zhang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 15:59:50