Python DataFrame基于同列相同值设置组内递增索引的实现方法
pandas按分组生成组内从0开始自增序号的实现方法
实现逻辑
使用pandas分组对象的cumcount()方法,该方法会对每个分组内的行按照原有顺序生成从0开始的递增整数序号,完全匹配需求。
完整代码示例
import pandas as pd # 1. 构造示例数据(已有DataFrame可直接跳过此步) df = pd.DataFrame({ 'A': ['a', 'a', 'b', 'c', 'c', 'c', 'c'] }) # 2. 新增setIndex列,生成分组内自增序号 df['setIndex'] = df.groupby('A').cumcount()
输出结果说明
最终生成的DataFrame包含三个字段:原默认索引、column A、setIndex,setIndex列符合分组内从0开始自增的要求,示例输出如下:
| 默认索引 | A | setIndex |
|---|---|---|
| 0 | a | 0 |
| 1 | a | 1 |
| 2 | b | 0 |
| 3 | c | 0 |
| 4 | c | 1 |
| 5 | c | 2 |
| 6 | c | 3 |
拓展:如果需要组内序号从1开始,只需修改代码为
df['setIndex'] = df.groupby('A').cumcount() + 1即可。
内容的提问来源于stack exchange,提问作者Xianghui Huang
相关产品推荐
相关产品推荐

