Python实现Excel相邻行条件判断:生成0/1结果
Pandas实现相邻行条件判断生成新列
需求说明
- 目标:在DataFrame的新列
cycle中生成0/1值 - 判断规则:当
Kompressor_1_val列当前行值<1且下一行值>5时,对应行返回1,否则返回0 - 结果对应关系:第1个结果对应第1、2行,第2个对应第2、3行,以此类推
原代码问题
原代码逻辑与语法均存在错误:
df3['cycle']=0&1是布尔运算,结果为0,无法正确初始化列- 条件表达式
df3['Kompressor_1_val']<1&5语法错误,完全没实现相邻行的比较逻辑
正确代码实现
# 初始化cycle列为0 df3['cycle'] = 0 # 构建相邻行的判断条件 condition = (df3['Kompressor_1_val'] < 1) & (df3['Kompressor_1_val'].shift(-1) > 5) # 将满足条件的行设置为1 df3.loc[condition, 'cycle'] = 1 # 查看结果 df3
代码解释
df3['Kompressor_1_val'].shift(-1):通过shift(-1)将列向上偏移一位,让当前行能直接获取到下一行的数值- 每个条件需用括号包裹,避免Python运算符优先级导致的逻辑错误
- 最后一行因无下一行数据,保持初始值0,符合需求中“相邻两行比较”的规则
内容的提问来源于stack exchange,提问作者Rajkishore Meruga
相关产品推荐
相关产品推荐

