Pandas如何对DataFrame按ColA分组后添加固定步长的计数列
实现方案
你可以直接通过 Pandas 分组累计序号配合整数除法实现,步长可灵活自定义,修改step变量即可适配业务需求:
import pandas as pd # 构造示例原始DF,实际场景直接读取你的数据即可 df = pd.DataFrame({ 'ColA': ['G']*9 + ['B']*9 }) # 步长设置,示例为3,业务场景修改为5即可 step = 3 # 计算新增列ColB df['ColB'] = df.groupby('ColA').cumcount() // step + 1 # 输出查看结果 print(df)
逻辑说明
- 首先通过
groupby('ColA')按指定列分组,每个分组内独立计算序号 cumcount()方法返回每个分组内的行序号,从0开始逐行递增- 用整数除法
//对序号做步长区间拆分,每满step行除法结果自动加1 - 最后加1让计数从1开始,匹配期望的输出规则
内容的提问来源于stack exchange,提问作者dmd7
相关产品推荐
相关产品推荐

