pandas按SCU_KEY分组行累计计数遇新分组重置的实现方法
实现方案
你需要的按指定字段分组后组内逐行累计计数的功能,可以直接使用pandas内置的cumcount()方法实现,该方法会对每个分组内的行从0开始生成顺序编号,给结果加1即可得到从1开始的连续计数。
完整代码
import pandas as pd # 示例输入数据 df = pd.DataFrame({'SCU_KEY' : [3, 3, 3, 5, 5, 5, 7, 8, 8, 8, 8], 'count':[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}) # 核心逻辑:按SCU_KEY分组后生成组内序号,加1后覆盖原count列 df['count'] = df.groupby('SCU_KEY').cumcount() + 1 # 打印结果验证 print(df)
输出结果
运行后得到的结果和你预期完全一致:
SCU_KEY count 0 3 1 1 3 2 2 3 3 3 5 1 4 5 2 5 5 3 6 7 1 7 8 1 8 8 2 9 8 3 10 8 4
内容的提问来源于stack exchange,提问作者Deke Marquardt
相关产品推荐
相关产品推荐

