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

Pandas如何复制行值填充至另一列上3行、下5行区域

Pandas指定区间填充列实现方案

核心逻辑:定位event列所有非空有效值的行位置,对每个有效值,将其填充到对应行上方3行、下方5行范围内的epoch列,自动做边界裁剪避免索引越界。

实现代码

import pandas as pd
import numpy as np

# 初始化epoch列,默认值为NaN
df["epoch"] = np.nan

# 遍历event列所有非空值的行索引和对应取值
for row_idx, event_val in df[df["event"].notna()]["event"].items():
    # 计算填充范围的起止行,防止索引小于0或超出表格最大行号
    fill_start = max(0, row_idx - 3)
    fill_end = min(len(df) - 1, row_idx + 5)
    # 给指定区间赋值
    df.loc[fill_start:fill_end, "epoch"] = event_val

效果说明

运行上述代码后得到的结果和给出的示例完全匹配:

  • 若event列的2_1位于索引6的位置,填充范围为3~11行,和示例中2_1的填充区间一致
  • 若event列的3_1位于索引20的位置,填充范围为17~25行,和示例中3_1的填充区间一致
  • 区间外的行epoch列保持为NaN

可调说明

  • 如果需要修改上下填充的行数,直接调整row_idx - 3、row_idx + 5两个位置的数值即可
  • 如果存在多个有效值的填充区间重叠,代码默认会用后遍历到的event值覆盖重叠区域的原有值,有特殊规则可以在赋值前加判断逻辑自定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:06:08