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

如何对DataFrame的col2列按1出现位置进行分组连续值替换?

处理DataFrame分组序列替换问题

假设你的DataFrame结构类似如下示例:

import pandas as pd

# 示例数据
data = {'col1': ['A','B','C','D','E','F','G'],
        'col2': [1,2,3,4,1,2,3]}
df = pd.DataFrame(data)

要将每组从1开始递增的col2序列替换为组的连续序号,直接用以下代码即可:

# 生成组序号:当col2为1时触发新组,累计求和得到组号
df['col2'] = (df['col2'] == 1).cumsum()

逻辑说明

  • df['col2'] == 1会生成一个布尔值序列,每组的起始位置(即col2=1)会被标记为True,其余位置为False
  • cumsum()对这个布尔序列做累加(True等价于1,False等价于0),每遇到一个新的起始标记,累加值就加1,从而给每组分配唯一的连续序号

处理后的示例结果:

col1col2
A1
B1
C1
D1
E2
F2
G2

这个方法高效且适合12000行的数据集,无需循环处理,完全利用pandas的矢量化操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 06:51:54