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

Pandas满足条件时将当前行Group值设为上一行值+1的实现方法

Pandas 高效实现方案

完全不需要循环遍历行,用pandas内置的向量化累加方法就能一行代码实现需求,效率远高于循环,代码也更易读:

import pandas as pd

# 假设你的DataFrame变量名为df
df['Group'] = df['Condition'].cumsum() - 1

逻辑说明

  • pandas会自动把布尔列的True识别为1、False识别为0,cumsum()方法会对整列做累积求和:每遇到Condition=True就加1,遇到False就保持上一行的累积值,正好匹配你要求的「只有当前行Condition为True时Group递增,否则和上一行Group值一致」的逻辑。
  • 末尾减1是适配你示例中第一个Condition=True对应的Group初始值为0的要求。

性能对比

这种向量化操作的效率比手动循环高几个量级:如果你的DataFrame有10万行,循环可能需要几百毫秒,向量化操作只需要几毫秒,数据量越大优势越明显。

特殊场景兼容

如果你的数据可能出现首行Condition=False的情况,要求首行Group固定为0,可以用兼容写法:

df['Group'] = df['Condition'].cumsum() - (1 if df.iloc[0]['Condition'] else 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:36:01