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

Pandas DataFrame如何将指定列相邻两个1之间的行值统一设为1

Pandas DataFrame 行值批量修改解决方案

核心实现逻辑:通过对on&off列的1值做累计求和,判断累计和的奇偶性标记需要填充为1的区间,同时包含结束点的1值,即可快速实现需求,全程为向量化操作,大数据量下效率远高于逐行遍历。


步骤1:创建示例DataFrame

import pandas as pd

df = pd.DataFrame({'ts_val' : [0,0,-1,-1,-1,-1,0,0,0,0,0],
                   'on&off' : [0,0,1,0,0,0,1,0,1,0,1]
    })

步骤2:核心处理代码

# 计算on&off列的1值累计和
cumsum_val = df['on&off'].cumsum()
# 奇数累计和区间 + 结束点的1位置全部设为1
df['on&off'] = ((cumsum_val % 2 == 1) | (df['on&off'] == 1)).astype(int)

处理后结果

ts_val  on&off
0        0       0
1        0       0
2       -1       1
3       -1       1
4       -1       1
5       -1       1
6        0       1
7        0       0
8        0       1
9        0       1
10       0       1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:36:03