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

如何基于上一行的值替换DataFrame指定行的con、num、stim列数值

实现方案(Python Pandas环境)

直接用Pandas的位移和填充功能即可快速实现,代码逻辑如下:

  • 第一步:生成标记掩码,定位所有num==3的行及后续2行
  • 第二步:对标记范围内的行向下填充con和num字段
  • 第三步:统一设置标记范围内的stim值为1

示例代码:

import pandas as pd
import numpy as np

# 假设你的原始数据读入后存为df变量
# 1. 生成掩码:标记num=3的行 + 后续2行
mask = df['num'] == 3
mask = mask | mask.shift(1, fill_value=False) | mask.shift(2, fill_value=False)

# 2. 填充con和num列:仅在掩码范围内向前填充对应值
df.loc[mask, ['con', 'num']] = df.loc[mask, ['con', 'num']].where(df['num'] == 3, np.nan)
df[['con', 'num']] = df[['con', 'num']].ffill()

# 3. 更新stim列
df['stim'] = mask.astype(int)

注意:如果你的DataFrame索引不是从0开始的连续整数,可以先执行df = df.reset_index(drop=True)再运行上述代码,操作完成后按需恢复索引即可。该逻辑兼容存在多个间隔的num==3行的场景,也自动处理最后几行不足2行的边界情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 15:30:01