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

如何基于Pandas DataFrame的两个分类列生成递增计数列?

如何在Pandas中按(username, phase)分组生成递增计数列

你需要给包含username和phase列的DataFrame新增count列,该列数值为每个用户在对应阶段内的出现次数(从1开始递增),示例数据如下:

username  phase      count
0    andrew    1          1
1    andrew    1          2
2    alex      1          1
3    alex      2          1
4    andrew    1          3
5    cindy     3          1
6    alex      2          2

高效实现方案

直接使用Pandas原生的groupby+cumcount()方法即可,这是性能最优的方式,无需手动循环:

import pandas as pd

# 假设你的DataFrame名为df
df['count'] = df.groupby(['username', 'phase']).cumcount() + 1

逻辑说明

  • groupby(['username', 'phase']):按「用户名+阶段」的组合进行分组,确保每个分组仅包含同一用户在同一阶段的所有行
  • cumcount():为每个分组内的行生成从0开始的连续序号,加1后就得到了从1开始的计数,完全匹配示例需求

这个方法基于Pandas内部优化的向量化操作,处理百万级别的数据也能保持高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:27:26