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

Pandas无需循环将≥99后差值≤1行的AboveOrEqual99列设为True

实现方案

采用pandas向量化分组运算完成需求,无显式for循环,适合大数据量场景,执行后结果和你给出的预期AboveOrEqual99result完全匹配。

完整代码

import pandas as pd

# 1. 标记分组边界:遇到初始True或者差值绝对值大于1时开启新分组
df['group'] = (df['AboveOrEqual99'] | (df['PercentageDiff'].abs() > 1)).cumsum()

# 2. 分组继承首行状态:首行是True的分组整组都标为True
df['AboveOrEqual99'] = df.groupby('group')['AboveOrEqual99'].transform('first')

# 清理临时生成的分组列
df.drop('group', axis=1, inplace=True)

逻辑说明

  • 分组规则会把所有「前序触发过True且后续差值绝对值≤1」的连续行归为同一组
  • 差值绝对值大于1时自动开启新分组,不会传递前序的True状态,避免误匹配你提到的24、25、25这类不符合要求的序列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:54:03