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

如何按分组为DataFrame添加符合规则的序号列

为DataFrame添加符合规则的序号列

原始数据定义

import pandas as pd

df = pd.DataFrame({
    "model": ["A","A","A","A","A","A","A","B","B","B","B","B","B","B"],
    "item": ["aa","ab","ab","ab","ac","ad","ad","ba","ba","ba","bb","bb","bb","bc"]
})

实现代码

# 按model分组,给组内每个唯一item分配连续标识(同一item标识一致)
df['item_id'] = df.groupby('model')['item'].transform(lambda x: x.factorize()[0])

# 对标识取模3,实现0、1、2循环
df['serial'] = df['item_id'] % 3

# 可选:删除中间生成的item_id列
df = df.drop('item_id', axis=1)

逻辑说明

  • 按model分组处理,确保不同model组的序号独立重置,满足「model切换时序号从0开始」的要求;
  • factorize()会给组内每个唯一item分配从0开始的连续整数,同一item得到相同的数值,保证「同一item序号相同」;
  • 对标识值取模3,让序号在0、1、2之间循环,符合规则要求。

最终结果

处理后的DataFrame如下:

序号modelitemserial
0Aaa0
1Aab1
2Aab1
3Aab1
4Aac2
5Aad0
6Aad0
7Bba0
8Bba0
9Bba0
10Bbb1
11Bbb1
12Bbb1
13Bbc2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:12:11