求助:如何为分组记录集添加sequence列实现唯一标识
解决方案:为分组记录添加sequence标识列
原始数据
| recType | Value |
|---|---|
| 01 | 8888 |
| 11 | asssff |
| 19 | 78292 |
| 01 | 77777 |
| 11 | aslasd |
| 19 | 08325 |
需求说明
新增sequence列,将每一组(按01→11→19顺序的三条记录为一组)标记为唯一序列值,第一组为1,第二组为2,以此类推。
实现代码
import pandas as pd # 构造原始DataFrame(已有数据可跳过此步骤) df = pd.DataFrame({ 'recType': ['01', '11', '19', '01', '11', '19'], 'Value': ['8888', 'asssff', '78292', '77777', 'aslasd', '08325'] }) # 生成sequence列:以recType='01'作为每组起始标记,累加得到序列值 df['sequence'] = (df['recType'] == '01').cumsum() # 输出结果 print(df)
最终结果
| recType | Value | sequence |
|---|---|---|
| 01 | 8888 | 1 |
| 11 | asssff | 1 |
| 19 | 78292 | 1 |
| 01 | 77777 | 2 |
| 11 | aslasd | 2 |
| 19 | 08325 | 2 |
原理说明
利用每组以recType='01'开头的规律,先通过df['recType'] == '01'生成布尔序列(起始行为True,其余为False),再调用cumsum()方法累加,自动为每组分配连续的序列标识。
内容的提问来源于stack exchange,提问作者SDS
相关产品推荐
相关产品推荐

